在Nginx服务器部署SSL证书(Windows)

本文介绍如何在Windows系统上的Nginx服务器部署SSL证书,具体包括SSL证书的下载、Nginx配置文件的修改,以及安装后HTTPS效果验证等步骤。

重要

本文以Widows Server 2025操作系统、Nginx-1.28.0为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见购买正式证书提交证书申请

  • SSL证书绑定的域名已完成DNS解析,即您的域名已正确映射到主机IP地址。您可以通过控制台常用证书工具中的DNS生效验证,检测域名DNS解析是否生效。具体操作,请参见DNS生效验证

  • 已在Web服务器开放443端口(HTTPS通信的标准端口)。

    • 如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见管理安全组规则

    • 如果您使用的是其他云服务商或本地服务器,请确保在防火墙或安全组中开启TCP 443端口。

  • 如果待部署SSL证书的网站计划部署在中国内地,则您需要按照工信部的相关要求完成ICP备案,否则将影响网站的正常访问。更多信息,请参见什么是ICP备案

步骤一:下载SSL证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. SSL证书管理页面,定位到目标证书,在操作列,单击更多,然后选择下载页签。

  4. 服务器类型Nginx操作列,单击下载,下载完成后将压缩包解压。

    解压后的文件包含证书文件(.pem后缀,且含完整证书链)和私钥文件(.key后缀)

    image..png

步骤二:在Nginx服务器部署证书

  1. 将证书文件和私钥文件上传到Nginx服务器安装目录(本文示例路径为D:\nginx-1.28.0)。

    image

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTY、XshellWinSCP等。如果您使用的是阿里云云服务器 ECS,上传文件具体操作,请参见使用远程桌面或Windows APPWindows实例传输文件上传文件到Linux云服务器

  2. 编辑Nginx配置文件nginx.conf,修改与证书相关的配置(本文示例路径为D:\nginx-1.28.0\conf\nginx.conf

    1. nginx.conf中定位到HTTPS server属性配置。

      image

      说明

      如果nginx.confinclude指令所引用的文件不存在HTTPS server块,请您自行手动进行添加。

    2. 删除行首注释符号#,并参考如下示例进行修改。

      server {
           #HTTPS的默认访问端口443。
           #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
           listen 443 ssl;
           
           #请将example.com替换为证书绑定的域名。多域名配置示例:server_name example.com www.example.com doc.example.com;
           server_name example.com;
       
           #填写证书文件绝对路径
           ssl_certificate D:\\nginx-1.28.0\\example.com.pem;
           #填写证书私钥文件绝对路径
           ssl_certificate_key D:\\nginx-1.28.0\\example.com.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;
          }
      }
    3. 可选:设置HTTP请求自动跳转到HTTPS。

      如果您希望所有的HTTP访问自动跳转到HTTPS,可通过rewrite指令重定向到HTTPS,代码如下所示,请在nginx.conf文件中定位到http server块中进行配置。

      server {
          listen 80;
          #填写证书绑定的域名
          server_name <YOURDOMAIN>;
          #将所有HTTP请求通过rewrite指令重定向到HTTPS。
          rewrite ^(.*)$ https://$host$1;
          location / {
              index index.html index.htm;
          }
      }

      如果找不到HTTP server块,可以新增server {}块进行配置,配置效果如下图所示:

      image

  3. 打开Windows命令行cmd.exe,进入Nginx安装目录(本文示例路径为D:\nginx-1.28.0),重新加载Nginx。

    .\nginx.exe -s reload 

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

证书安装完成后,您可通过访问证书绑定的域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

image..png

相关文档