如何在Nginx服务器上配置SSL证书实现HTTPS安全加密
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
在Nginx服务器上配置SSL证书实现HTTPS加密,需先获取受信任的SSL证书和私钥,然后将其上传至服务器,接着编辑Nginx配置文件,指定证书路径、启用SSL并设置监听443端口,同时建议开启HSTS和强加密套件以增强安全性,最后重启Nginx服务,通过浏览器访问验证HTTPS是否正常运行。
随着互联网技术的迅猛发展,网络安全问题日益成为人们关注的焦点,用户在浏览网页、提交表单或进行在线支付等操作时,数据的安全传输至关重要,为防止敏感信息在传输过程中被窃取或篡改,采用 HTTPS 协议已成为现代网站的基本标准,而实现 HTTPS 的核心技术之一,便是 SSL(Secure Sockets Layer)证书。
本文将系统介绍如何在 Nginx 服务器上配置 SSL 证书,帮助网站顺利启用安全的 HTTPS 连接,从而提升安全性与用户体验。
什么是 SSL 证书?
SSL 证书是一种数字身份凭证,用于在客户端(如浏览器)与服务器之间建立加密通信通道,当网站部署了有效的 SSL 证书后,其访问地址前缀会从 http://
变为 https://
,同时浏览器通常会在地址栏显示锁形图标,表示当前连接是经过加密且可信的。
SSL 证书不仅能够对传输中的数据进行高强度加密,保护用户名、密码、信用卡号等隐私信息,还能验证网站所有者的身份,有效防范钓鱼网站和中间人攻击(Man-in-the-Middle Attack),增强用户的信任感。
尽管目前主流的安全协议已升级至 TLS(Transport Layer Security,即传输层安全协议),但由于历史习惯,“SSL 证书”这一术语仍被广泛使用,常见的 SSL 证书类型主要包括三种:
- DV(Domain Validation)证书:仅验证域名所有权,签发速度快,适合个人博客或测试站点;
- OV(Organization Validation)证书:需验证企业或组织的真实身份,安全性更高,适用于中小型企业官网;
- EV(Extended Validation)证书):提供最高等级的身份审核,浏览器地址栏会显示公司名称(部分浏览器已逐步取消该功能),常用于银行、电商等高安全需求场景。
选择合适的证书类型,有助于在安全性和成本之间取得平衡。
Nginx 与 SSL 证书的关系
Nginx 是一款轻量高效、性能卓越的开源 Web 服务器和反向代理服务器,因其出色的并发处理能力,被广泛应用于高流量网站和大型分布式架构中,除了静态资源的快速分发外,Nginx 还内置了强大的 SSL/TLS 支持模块,能够高效处理 HTTPS 请求。
通过在 Nginx 中正确配置 SSL 证书,不仅可以实现网站的全站加密访问,还有助于提升搜索引擎排名——Google 等主流搜索引擎明确表示优先收录并推荐 HTTPS 网站,启用 HTTPS 还能满足现代浏览器对安全策略的要求(如 Chrome 对非 HTTPS 页面标记“不安全”提示),避免影响用户转化率。
在 Nginx 上部署 SSL 证书,既是安全保障的重要举措,也是网站合规运营的基础条件。
获取 SSL 证书
在开始配置之前,首先需要获取一张有效的 SSL 证书,目前主要有两种获取途径:
-
购买商业证书
可从权威认证机构(CA)如 DigiCert、GlobalSign、Sectigo(原 Comodo)、阿里云、腾讯云等平台购买,这类证书具备更高的信任链兼容性,支持更广泛的设备和浏览器,且提供专业的技术支持与责任担保,特别适合金融、电商、政务等对安全性要求极高的企业级应用。 -
使用免费证书(Let’s Encrypt)
Let’s Encrypt 是一个非营利性的公共 CA,致力于推动互联网全面加密,它提供免费的 DV 类型 SSL 证书,有效期为 90 天,虽然有效期较短,但可通过自动化工具(如 Certbot)实现自动申请与续期,极大降低了维护成本,对于个人网站、开发测试环境或中小型项目而言,这是一个理想选择。
本文将以 Let’s Encrypt 免费证书为例,演示完整的申请与部署流程。
在 Nginx 中配置 SSL 证书
假设你已经通过 Certbot 或其他方式成功获取了证书文件(通常包括 fullchain.pem
和 privkey.pem
),接下来即可进入 Nginx 配置阶段。
-
上传并存放证书文件
建议将证书文件统一存放在安全目录下,
/etc/Nginx/SSL/example.com/
确保该目录权限设置合理(推荐权限为 `600`,属主为 `root:root`),以防止私钥泄露。 -
修改 Nginx 站点配置文件
打开对应站点的配置文件(路径通常为/etc/nginx/sites-available/your-site.conf
或/etc/nginx/conf.d/your-site.conf
),添加一个监听 443 端口的 `server` 块,示例如下:server { listen 443 ssl http2; server_name www.example.com example.com;
# 指定证书文件路径 ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem; # 启用现代加密协议 ssl_protocols TLSv1.2 TLSv1.3; # 推荐使用的强加密套件 ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES128-GCM-SHA256; # 关闭服务器优先选择加密算法(可根据实际情况调整) ssl_prefer_server_ciphers off; # 开启会话复用,提高性能 ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 启用 OCSP Stapling,加快证书状态验证 ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 1.1.1.1 valid=300s; resolver_timeout 5s; # 网站根目录与默认页面 root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ =404; }
上述配置中加入了多项安全增强选项,包括启用 HTTP/2、设置强加密套件、开启 OCSP Stapling 等,有助于提升连接速度与整体安全性。
-
配置 HTTP 到 HTTPS 的强制跳转(推荐)
为了确保所有访问都通过加密连接进行,应将 HTTP 请求自动重定向至 HTTPS,新增一个监听 80 端口的 server 块:server { listen 80; server_name www.example.com example.com; return 301 https://$host$request_uri; }
此规则利用 301 永久重定向,引导用户和搜索引擎爬虫转向安全版本,有利于 SEO 优化。
-
测试配置并重启 Nginx 服务
完成配置后,务必先检查语法是否正确:sudo nginx -t
若输出显示 “syntax is ok” 且无错误提示,则可安全重启 Nginx 以应用更改:
sudo systemctl reload nginx
建议使用 `reload` 而非 `restart`,可在不停止服务的前提下平滑加载新配置,减少对线上业务的影响。
验证 SSL 配置结果
配置完成后,可通过以下方式确认 HTTPS 是否正常工作:
- 在浏览器中访问
https://yourdomain.com
,查看地址栏是否出现绿色锁形标志; - 尝试提交表单或登录账户,确认无安全警告弹出;
- 使用专业工具检测 SSL 安全等级,例如访问 SSL Labs 提供的 SSL Server Test,在线分析服务器的加密配置、协议支持、密钥强度等指标,目标评分应达到 A 或以上。
若发现任何安全隐患(如弱加密算法、过期证书、不完整链等),应及时调整 Nginx 配置予以修复。
定期更新证书,保障长期安全
尤其对于使用 Let’s Encrypt 必须高度重视证书的 90 天有效期,一旦证书过期,浏览器将弹出严重安全警告,可能导致用户流失甚至搜索引擎降权。
为此,强烈建议配置自动续期机制,以 Certbot 为例,可通过以下命令测试自动续期功能:
sudo certbot renew --dry-run