通过SSL证书服务购买和签发证书后,您可以将已签发的证书下载并安装到Nginx服务器上。本文介绍了下载SSL证书并在Nginx下服务器上安装证书的具体操作。
前提条件
已经通过SSL证书服务完成证书签发。更多信息,请参见步骤一:填写证书申请信息。
已准备好远程登录工具(例如PuTTY、Xshell),用于登录您的Web服务器。
注意:本文以CentOS 8操作系统、Nginx 1.14.1服务器系统为例进行说明。由于服务器系统版本不同,您在操作过程中使用的命令可能会略有区别。
步骤一:下载证书到本地
1.1、登录阿里云SSL证书控制台。在概览页面上方,单击已签发统计区域下的数字。
该操作将会筛选出所有已签发的证书。您只可以将已签发的证书下载到本地。定位到要下载的证书,单击操作列下的下载。
1.2、解压已下载的Nginx证书压缩包文件。
解压后您将会获得以下文件:
步骤二、使用证书
2.1、使用远程登录工具(例如PuTTY、Xshell)附带的本地文件上传功能,将本地证书文件和密钥文件上传到Nginx服务器的证书目录/usr/local/nginx/conf/cert
2.2、编辑Ngnix配置文件(nginx.conf),修改与证书相关的配置内容。
vim /usr/local/nginx/conf/nginx.conf
按i进入编辑
#以下属性中,以ssl开头的属性表示与证书配置有关。 server { listen 443 ssl; #配置HTTPS的默认访问端口为443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。 server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 root html; index index.html index.htm; ssl_certificate cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。 ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #表示使用的加密套件的类型。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。 ssl_prefer_server_ciphers on; location / { root html; #站点目录。 index index.html index.htm; } }
2.3、设置HTTP请求自动跳转HTTPS。
如果您希望所有的HTTP访问自动跳转到HTTPS页面,则可以在需要跳转的HTTP站点下添加以下rewrite语句。
使用示例代码前,请注意将yourdomain.com替换成证书绑定的域名。
server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; }
修改完成后,按Esc键、输入:wq,并按Enter键,保存修改后的配置文件并退出编辑模式。
2.4、重启nginx