本文介绍如何在Windows系统上的Nginx服务器部署SSL证书,具体包括SSL证书的下载、Nginx配置文件的修改,以及安装后HTTPS效果验证等。
本文以Widows Server 2025操作系统、Nginx-1.28.0为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务。
前提条件
域名已正确解析至当前服务器,且已完成工信部 ICP 备案(适用于中国内地服务器)。
待部署的证书为国际标准证书。若需部署国密证书,请参见在Nginx服务器安装国密SSL证书(Linux)。
已获得本服务器的管理权限(即“root账号”或“有 sudo 权限”的账号)。
操作步骤
步骤一:下载 SSL 证书和私钥文件
登录数字证书管理服务控制台。在左侧导航栏选择 。
在SSL证书管理页面,定位需部署的目标证书,并确认以下信息:
在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为 Nginx 的证书。
解压下载的证书压缩包:
若同时包含证书文件(.pem)和私钥文件(.key),请妥善保存上述文件,后续部署时均需使用。
若仅包含证书文件(.pem),不含私钥文件(.key),需配合您本地保存的私钥文件一起部署。
说明若申请证书时使用 OpenSSL、Keytool 等工具生成 CSR 文件,私钥文件仅保存在您本地,下载的证书包中不包含私钥。如私钥遗失,证书将无法使用,需重新购买正式证书并生成CSR和私钥。
步骤二:在Nginx服务器部署证书
登录Windows服务器。
阿里云服务器
以下操作以阿里云云服务器 ECS 为例进行说明,其他类型的服务器请参照对应产品文档进行操作。
登录ECS管理控制台,在页面左侧顶部,选择目标ECS实例所在地域。
在左侧导航栏中选择
,在实例页面找到目标ECS实例,点击操作列的远程连接。在弹出的对话框中,选择通过Workbench远程连接并单击立即登录。
选择终端连接作为连接方式,输入相关认证信息,并根据页面提示完成登录,即可进入服务器终端。详细操作请参考使用Workbench登录ECS实例。
说明若系统弹出“安全组白名单开通提示”面板,请按照页面提示单击一键添加。
其他云厂商服务器
请通过对应云厂商提供的远程连接功能登录服务器终端。
非云厂商服务器(如物理服务器、IDC托管主机等)
请在本地使用登录服务器。
Windows:在系统自带的远程桌面连接应用进行连接。
macOS:可以在软件商店下载Windows App(之前名为Microsoft远程桌面)进行连接。
开放安全组的 443 端口。
重要若您的服务器部署在云平台,请确保其安全组已开放入方向 443 端口 (TCP),否则外部无法访问服务。以下操作以阿里云 ECS 为例,其他云平台请参考其官方文档。
登录ECS管理控制台,在页面左侧顶部,选择目标 ECS 实例所在地域。在实例页面,找到目标 ECS 实例。
单击目标实例名称,进入实例详情页面,单击
,确保存在一条授权策略为允许、协议类型为 TCP、目的端口范围为 HTTPS(443)、授权对象为任何位置(0.0.0.0/0)的规则。如不存在此规则,请进行添加。
开放服务器防火墙的443端口。
登录Windows服务器,单击左下角开始菜单,打开控制面板。
点击
。如果防火墙处于如下图的关闭状态,无需额外操作。
如果防火墙已开启,需放行HTTPS规则。
上传证书文件到服务器,以下三种方式任选其一即可。
Workbench上传文件
在前面步骤打开的 Workbench 页面中,单击左下角开始菜单,查找并打开名为此电脑、计算机或文件资源管理器的选项。
双击 xxx上的workbench。
从本地拖动之前步骤下载的zip文件至该目录,并右键刷新文件夹。
然后将目标文件从该目录拖动到 C 盘或者其他盘。
重要重新连接、退出实例时,Workbench会自动清除该实例重定向的驱动程序和文件夹中已上传的所有文件信息以节省空间,该目录仅用于文件传输,请不要保存文件。
远程连接工具上传文件
在使用远程桌面连接或Windows App连接实例时,可以直接将下载的证书文件使用远程桌面或Windows APP向Windows实例传输文件。
上传至服务器,具体操作,请参见在服务器上下载证书文件
如果您的服务器可以访问公网并登录阿里云控制台,则可以直接在服务器上登录数字证书管理服务控制台进行步骤一的下载。
将证书文件和私钥文件上传到Nginx服务器安装目录(本文示例路径为
D:\nginx-1.28.0
)。说明您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTY、Xshell或WinSCP等。如果您使用的是阿里云云服务器 ECS,上传文件具体操作,请参见使用远程桌面或Windows APP向Windows实例传输文件或上传文件到Linux云服务器。
编辑Nginx配置文件
nginx.conf
,修改与证书相关的配置(本文示例路径为D:\nginx-1.28.0\conf\nginx.conf
)。
在nginx.conf中定位到HTTPS server属性配置。
说明如果nginx.conf或include指令所引用的文件不存在HTTPS server块,请您自行手动进行添加。
删除行首注释符号#,并参考如下示例进行修改。
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; } }
可选:设置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 {}
块进行配置,配置效果如下图所示:
打开Windows命令行
cmd.exe
,进入Nginx安装目录(本文示例路径为D:\nginx-1.28.0
),重新加载Nginx。.\nginx.exe -s reload
步骤三:验证SSL证书是否配置成功
请通过 HTTPS 访问您已绑定证书的域名(如
https://yourdomain.com
,yourdomain.com
需替换为实际域名)。若浏览器地址栏显示安全锁图标,说明证书已成功部署。如访问异常或未显示安全锁,请先清除浏览器缓存或使用无痕(隐私)模式重试。
说明Chrome 浏览器自 117 版本起,地址栏中的
已被新的
替代,需单击该图标后查看安全锁信息。
如仍有问题,请参考常见问题进行排查。
后续步骤(可选)
开启域名监控
建议在证书部署完成后,为域名开启域名监控功能。系统将自动检测证书有效期,并在到期前发送提醒,帮助您及时续期,避免服务中断。具体操作请参见购买并开启公网域名监控。
常见问题
安装或更新证书后,证书未生效或 HTTPS 无法访问
常见原因如下:
域名未完成备案。请参见如何查看域名解析记录以及 ICP 备案信息。
服务器安全组或防火墙未开放 443 端口。请参见开放安全组的443端口和开放服务器防火墙的443端口。
证书的绑定域名未包含当前访问的域名。请参见确认证书是否匹配目标域名。
修改 Nginx 配置文件后,未重载(reload) Nginx 服务。具体操作可参见重载 Nginx 服务。
证书文件未正确替换,或 Nginx 配置未正确指定证书路径。请检查 Nginx 配置文件和所用证书文件是否为最新且有效。
域名已接入 CDN、SLB 或 WAF 等云产品,但未在相应产品中安装证书。请参阅云产品部署证书完成相关操作。
当前域名的 DNS 解析指向多台服务器,但证书仅在部分服务器上安装。需分别在每个服务器中安装证书。
如需进一步排查,请参考:根据浏览器错误提示解决证书部署问题 和 SSL证书部署故障自助排查指南。
如何更新(替换)Nginx 中已安装的 SSL 证书
请先备份服务器上原有的证书文件(.pem 和 .key),然后登录数字证书管理服务控制台,下载新的证书文件(.pem 和 .key),并上传到目标服务器覆盖原有文件(确保路径和文件名一致)。最后,重载(reload)Nginx 服务,使新证书生效。
如何在 Nginx 中关闭 TLSv1.0 和 TLSv1.1 以避免部分浏览器提示“证书不符合标准”
在 Nginx 监听 443 端口的 server 块中,将 ssl_protocols
仅保留 TLSv1.2 和 TLSv1.3,最终配置为ssl_protocols TLSv1.2 TLSv1.3;
。此时将禁用不安全的 TLSv1.0 和 TLSv1.1。配置完成后,执行 .\nginx.exe -s reload
使设置生效。