Nginx或Tengine服务器配置SSL证书

Posted by 汤键|兔子队列 on June 5, 2023 禁止转载
本文总共 1147 字 · 阅读全文大约需要 4 分钟

前提条件

  • 已通过数字证书管理服务控制台签发证书
  • SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射
  • 已在Web服务器开放443端口(HTTPS通信的标准端口)
  • 如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口

步骤一:下载SSL证书

  • 1-下载服务器类型为Nginx的证书
  • 2-解压缩已下载的SSL证书压缩包
  • 根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同
  • 具体如下表所示:

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

  • 1-执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录
  • 2-将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)
  • 您可以使用远程登录工具附带的本地文件上传功能,上传文件
  • 例如PuTTy、Termius、Xftp或WinSCP等
  • 3-编辑Nginx配置文件nginx.conf,修改与证书相关的配置
  • (1)执行以下命令,打开配置文件
  • (2)在nginx.conf中定位到server属性配置
  • (3)删除行首注释符号#,并参考如下示例进行修改
  • 625
  • (4)可选:设置HTTP请求自动跳转HTTPS
  • 如果您希望所有的HTTP访问自动跳转到HTTPS页面,可通过rewrite指令重定向到HTTPS
  • 注意:以下代码片段需要放置在nginx.conf文件中server {}代码段后面,即设置HTTP请求自动跳转HTTPS后,nginx.conf文件中会存在两个server {}代码段
  • 625
  • 配置效果如下图所示:
  • 325
  • 4-执行以下命令,重启Nginx服务
  • 325
  • 注意:
  • 报错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

步骤三:验证SSL证书是否配置成功

  • 证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功
  • 如果网页地址栏出现小锁标志,表示证书已经安装成功