Nginx SSL证书部署


Nginx SSL 证书部署

前言

SSL证书申请 成功后,静候 10 分钟,就可以开始进行 SSL 证书部署了。本篇文章就主要介绍 Nginx SSL 证书部署的相关操作步骤。

前提条件

  • 已有 SSL 数字证书
  • SSL 证书绑定的域名已完成 DNS 解析,即域名与主机 IP 地址相互映射。
  • Web 服务器开放了 443 端口(HTTPS 通信的标准端口)。
    • 如果是阿里云 ECS 服务器,需在安全组规则入方向添加 TCP 443 端口。

详细步骤

步骤一:下载 SSL 证书

  1. 登录 数字证书管理服务控制台
  2. 选择证书管理 > SSL 证书管理。
  3. 在 SSL 证书页面,定位到目标证书,在操作列,单击下载。
  4. 在服务器类型为 Nginx 的操作列,单击下载。(本文以 Nginx 为例)
  5. 解压缩已下载的 SSL 证书压缩包。

步骤二:在 Nginx 服务器安装证书

  1. 执行以下命令,在 Nginx 的 conf 目录下创建一个用于存放证书的目录。

    #进入Nginx默认配置文件目录。
    cd /usr/local/nginx/conf
    #创建证书目录,命名为cert。
    mkdir cert
  2. 将证书文件和私钥文件上传到 Nginx 服务器的证书目录(/usr/local/nginx/cert)。

  3. 编辑 Nginx 配置文件 nginx.conf,修改与证书相关的配置。

    1. 执行以下命令,打开配置文件。

      vi /usr/local/nginx/conf/nginx.conf
    2. 参考示例如下,自行修改。

      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;
       
          #自定义设置使用的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;
          }
      }  
  4. 执行以下命令,重启 Nginx 服务。

    #进入Nginx服务的可执行目录。
    cd /usr/local/nginx/sbin  
    #重新载入配置文件。
    ./nginx -s reload  

其他问题

若是以上步骤全部操作完成,但是在 Nginx 重启时若遇到缺少 http_ssl_module 的错误,如何处理呢?允许 http 与 https 都可以访问又该如何配置 Nginx 呢?

参考

Nginx配置SSL证书-阿里云帮助中心 (aliyun.com)


文章作者: huan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huan !
  目录