更新时间:2025-10-29 GMT+08:00
在Nginx服务器上安装SSL证书
本文以CentOS 7操作系统中的Nginx 1.7.8服务器为例介绍SSL证书的安装步骤,您在安装证书时可以进行参考。证书安装好后,您的Web服务器才能支持SSL通信,实现通信安全。
由于服务器系统版本或服务器环境配置不同,在安装SSL证书过程中使用的命令或修改的配置文件信息可能会略有不同,云证书管理服务提供的安装证书示例,仅供参考,请以您的实际情况为准。
前提条件
- 证书已上传且状态为“托管中”。
- 已下载SSL证书,具体操作请参见下载SSL证书。
约束条件
- 证书安装前,务必在安装SSL证书的服务器上开启“443”端口,同时在安全组增加“443”端口,避免安装后仍然无法启用HTTPS。
- 如果一个域名有多个服务器,则每一个服务器上都要部署。
- 待安装证书的服务器上需要运行的域名,必须与证书的域名一一对应,否则安装部署后,浏览器将提示不安全。
操作步骤
在CentOS 7操作系统中的Nginx 1.7.8服务器上安装SSL证书的流程如下所示:
步骤一:获取文件
安装证书前,需要获取证书文件和密码文件,请根据申请证书时选择的“证书请求文件”生成方式来选择操作步骤:
具体操作如下:
- 系统生成CSR
- 在本地解压已下载的证书文件。
- 从“证书ID_证书绑定的域名_Nginx”文件夹内获得证书文件“证书ID_证书绑定的域名_server.crt”和私钥文件“证书ID_证书绑定的域名_server.key”。
- “证书ID_证书绑定的域名_server.crt”文件包括两段证书代码“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,分别为服务器证书和中级CA。
- “证书ID_证书绑定的域名_server.key”文件包括一段私钥代码“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。
- 自己生成CSR
- 解压已下载的证书压缩包,获得“证书ID_证书绑定的域名_server.pem”文件。
“证书ID_证书绑定的域名_server.pem”文件包括两段证书代码“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,分别为服务器证书和中级CA证书。
- 将“证书ID_证书绑定的域名_server.pem”的后缀名修改为“crt”,即“server.crt”。
- 将“server.crt”和生成CSR时的私钥“server.key”放在任意文件夹内。
- 解压已下载的证书压缩包,获得“证书ID_证书绑定的域名_server.pem”文件。
步骤三:修改配置文件
修改配置文件前,请将配置文件进行备份,并建议先在测试环境中进行部署,配置无误后,再在现网环境进行配置,避免出现配置错误导致服务不能正常启动等问题,影响您的业务。
配置Nginx中“conf”目录下的“nginx.conf”文件。
- 找到如下配置内容:
#server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} - 删除行首的配置语句注释符号#。
server { listen 443 ssl; server_name localhost; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } - 修改如下参数,具体参数修改说明如表1所示。
ssl_certificate cert/server.crt; ssl_certificate_key cert/server.key;
完整的配置如下,其余参数根据实际情况修改:
server { listen 443 ssl; #配置HTTPS的默认访问端口为443。如果在此处未配置HTTPS的默认访问端口,可能会导致Nginx无法启动。 server_name www.domain.com; #修改为您证书绑定的域名。 ssl_certificate cert/server.crt; #替换成您的证书文件的路径。 ssl_certificate_key cert/server.key; #替换成您的私钥文件的路径。 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。 ssl_prefer_server_ciphers on; location / { root html; #站点目录。 index index.html index.htm; #添加属性。 } }
不要直接复制所有配置,参数中“ssl”开头的属性与证书配置有直接关系,其它参数请根据自己的实际情况修改。
- 修改完成后保存配置文件。
父主题: 安装SSL证书到Web服务器
