在Nginx服务器上安装SSL证书
发布时间: 2022/01/04
本章节介绍如何将下载的证书安装到Nginx服务器上。安装好证书后,您的Web服务器将能支持SSL通信。
如果证书安装过程中遇到问题,提供SSL证书配置优化服务,可实现云上全品牌SSL证书配置,工程师一对一服务。请直接单击 一对一咨询进行购买,购买服务后,联系工程师进行处理。
前提条件
- “证书状态”为 “已签发”。
- 已下载SSL证书,具体操作请参见下载证书。
约束条件
- 证书安装前,务必在安装SSL证书的服务器上开启 “443”端口,同时在组增加 “443”端口,避免安装后仍然无法启用HTTPS。
- 如果一个域名有多个服务器,则每一个服务器上都要部署。
- 待安装证书的服务器上需要运行的域名,必须与证书的域名一一对应,即购买的是哪个域名的证书,则用于哪个域名。否则安装部署后,浏览器将提示不。
操作步骤
在Nginx服务器上安装SSL证书的流程如下所示:
①获取文件 → ②创建目录 → ③修改配置文件 → ④验证配置是否正确 → ⑤重启Nginx → ⑥效果验证
步骤一:获取文件
安装证书前,需要获取证书文件和密码文件,请根据申请证书时选择的 “证书请求文件”生成方式来选择操作步骤:
- 如果申请证书时, “证书请求文件”选择 “系统生成CSR”。
- 如果申请证书时, “证书请求文件”选择 “自己生成CSR”。
具体操作如下:
- 系统生成CSR
- 在本地解压已下载的证书文件。 下载的文件包含了 “Apache”、 “IIS”、 “Nginx”、 “Tomcat”4个文件夹和1个 “domain.csr”文件,如所示。图1本地解压SSL证书
- 从 “ 证书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的安装目录下创建 “cert”目录,并且将 “server.key”和 “server.crt”拷贝到 “cert”目录下。
步骤三:修改配置文件
配置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; # locations / { # 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;locations / { 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_namewww.domain.com; #修改为您证书绑定的域名。 ssl_certificatecert/server.crt; #替换成您的证书文件的路径。 ssl_certificate_keycert/server.key; #替换成您的私钥文件的路径。 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。 ssl_prefer_server_ciphers on; locations / { root html; #站点目录。 index index.html index.htm; #添加属性。 }}
须知:不要直接拷贝所有配置,参数中 “ssl”开头的属性与证书配置有直接关系,其它参数请根据自己的实际情况修改。
表1参数说明 参数
参数说明
listen
SSL访问端口号,设置为 “443”。
配置HTTPS的默认访问端口为443。如果未配置HTTPS的默认访问端口,可能会导致Nginx无法启动。
server_name
证书绑定的域名。示例:www.domain.com
ssl_certificate
证书文件 “server.crt”。
设置为 “server.crt”文件的路径,且路径中不能包含中文字符,例如 “cert/server.crt”。
ssl_certificate_key
私钥文件 “server.key”。
设置为 “server.key”的路径,且路径中不能包含中文字符,例如 “cert/server.key”。
- 修改完成后保存配置文件。
步骤四:验证配置是否正确
进入Nginx执行目录下,执行以下命令:
sbin/nginx -t
nginx.conf syntax is ok nginx.conf test is successful
步骤五:重启Nginx
执行以下命令,重启Nginx,使配置生效。
cd /usr/local/nginx/sbin
./nginx -s reload
效果验证
部署成功后,可在浏览器的地址栏中输入 “https://域名”,按 “Enter”。
如果浏览器地址栏显示锁标识,则说明证书安装成功。