步骤一:下载SSL证书
- 登录数字证书管理服务控制台。
- 在左侧导航栏,单击SSL 证书。
- 在SSL证书页面,定位到目标证书,在操作列,单击下载。
-
在服务器类型为Nginx的操作列,单击下载。
-
解压缩已下载的SSL证书压缩包。
根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。
放大查看CSR生成方式
证书压缩包包含的文件
系统生成或选择已有的CSR
包括以下文件:
-
证书文件(PEM格式):默认以证书ID_证书绑定域名命名。PEM格式的证书文件是采用Base64编码的文本文件。
-
私钥文件(TXT格式):证书文件的密码,默认以证书绑定域名命名。
手动填写
只包括证书文件(PEM格式),您需要手动创建证书私钥文件。具体操作,请参见创建私钥。
说明根据实际需要,您可以将PEM格式的证书文件转换成其他格式。转换证书格式的具体操作,请参见证书格式转换。
-
步骤二:在Nginx服务器安装证书
在Nginx独立服务器、Nginx虚拟主机上安装证书的操作不同,请根据您的实际环境,选择对应的安装步骤。
在Nginx独立服务器上安装证书
-
执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录。
放大查看复制代码cd /usr/local/nginx/conf #进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录,如果您修改过默认安装目录或使用其他方式安装,请根据实际配置调整。 mkdir cert #创建证书目录,命名为cert。
-
将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)。
-
编辑Nginx配置文件nginx.conf,修改与证书相关的配置。
-
执行以下命令,打开配置文件。
放大查看复制代码vim /usr/local/nginx/conf/nginx.conf
重要nginx.conf默认保存在/usr/local/nginx/conf目录下。如果您修改过nginx.conf的位置,可以执行
nginx -t
,查看nginx的配置文件路径,并将/usr/local/nginx/conf/nginx.conf
进行替换。 -
按i键进入编辑模式。
-
在nginx.conf中定位到server属性配置。
-
删除行首注释符号#,并根据如下内容进行修改。
放大查看复制代码server { #HTTPS的默认访问端口443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 listen 443 ssl; #填写证书绑定的域名 server_name <yourdomain>; #填写证书文件名称 ssl_certificate cert/<cert-file-name>.pem; #填写证书私钥文件名称 ssl_certificate_key cert/<cert-file-name>.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #默认加密套件 ssl_ciphers HIGH:!aNULL:!MD5; #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示优先使用服务端加密套件。默认开启 ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
-
可选:设置HTTP请求自动跳转HTTPS。
如果您希望所有的HTTP访问自动跳转到HTTPS页面,则可以在需要跳转的HTTP站点下添加
重要rewrite
语句。以下代码片段需要放置在nginx.conf文件中
放大查看复制代码server {}
代码段后面,即设置HTTP请求自动跳转HTTPS后,nginx.conf文件中会存在两个server {}
代码段。server { listen 80; #填写证书绑定的域名 server_name <yourdomain>; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 rewrite ^(.*)$ https://$host$1; location / { index index.html index.htm; } }
配置效果如下图所示:
-
修改完成后,按Esc键、输入:wq并按Enter键,保存修改后的配置文件并退出编辑模式。
-
-
执行以下命令,重启Nginx服务。
放大查看复制代码cd /usr/local/nginx/sbin #进入Nginx服务的可执行目录。 ./nginx -s reload #重新载入配置文件。
说明-
报错
the "ssl" parameter requires ngx_http_ssl_module
:您需要重新编译Nginx并在编译安装的时候加上--with-http_ssl_module
配置。 -
报错
"/cert/3970497_demo.aliyundoc.com.pem":BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/cert/3970497_demo.aliyundoc.com.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
:您需要去掉证书相对路径最前面的/
。例如,您需要去掉/cert/cert-file-name.pem
最前面的/
,使用正确的相对路径cert/cert-file-name.pem
。
-
在Nginx虚拟主机上安装证书
在不同的虚拟主机上安装证书,您需要执行不同的操作步骤。如果您使用的是阿里云的云虚拟主机,具体操作,请参见开启HTTPS加密访问。如果您使用的是其他品牌的虚拟主机,请参考对应的虚拟主机安装证书的操作指南。
步骤三:验证SSL证书是否安装成功
证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。放大查看复制代码
https://yourdomain #需要将yourdomain替换成证书绑定的域名。
如果网页地址栏出现小锁标志,表示证书已经安装成功。
相关文档
SSL证书部署后未生效或访问网站显示不安全