文档中心
Nginx閰嶇疆鍩熷悕SSL璇佷功鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘瀹炵幇HTTPS鍔犲瘑
时间 : 2025-09-27 16:27:51浏览量 : 3

作为一名网络安全从业人员,我深知网站安全的重要性。今天我要用最通俗易懂的方式,带你一步步完成Nginx配置SSL证书的全过程,让你的网站从HTTP升级到HTTPS,实现数据传输加密。
一、为什么要配置SSL证书?
简单来说,SSL证书就像是你网站的"身份证"和"保险箱"。没有它的时候(HTTP),你的网站数据就像明信片一样在互联网上裸奔;有了它(HTTPS),所有通信都会被加密,就像把明信片装进了保险箱。
真实案例:2025年某知名电商平台因为未启用HTTPS,导致用户登录信息被中间人攻击窃取,造成数百万用户数据泄露。如果当时配置了SSL证书,这种悲剧完全可以避免。
二、准备工作
在开始之前,你需要准备好:
1. 一台已安装Nginx的服务器(建议版本1.15+)
2. 一个已经备案的域名
3. SSL证书文件(可从阿里云、腾讯云等平台申请免费证书)
小贴士:现在各大云服务商都提供免费的DV SSL证书(如Let's Encrypt),个人网站完全够用。企业网站建议购买OV或EV证书。
三、获取SSL证书
以阿里云为例获取免费SSL证书:
1. 登录阿里云控制台 → 安全(云盾) → SSL证书
2. 点击"购买证书",选择"免费型DV SSL"
3. 填写域名信息并完成验证
4. 下载Nginx版本的证书(会得到.key和.pem两个文件)
常见问题:很多人在这里会犯一个错误 - 下载错服务器类型的证书。一定要选择"Nginx"版本!
四、上传证书到服务器
将下载的证书文件上传到服务器,建议存放在:
```
/etc/nginx/ssl/yourdomain.com/
目录结构应该是:
├── yourdomain.com.key
私钥文件
└── yourdomain.com.pem
证书文件
安全提示:务必确保.key文件的权限设置为600(仅root可读写):
```bash
chmod 600 /etc/nginx/ssl/yourdomain.com/yourdomain.com.key
五、配置Nginx支持HTTPS
打开你的Nginx配置文件(通常在/etc/nginx/sites-available/下),找到你的域名配置文件进行修改:
```nginx
server {
listen 443 ssl;
监听443端口并启用SSL
server_name yourdomain.com www.yourdomain.com;
SSL证书配置
ssl_certificate /etc/nginx/ssl/yourdomain.com/yourdomain.com.pem;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com/yourdomain.com.key;
SSL性能优化参数
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_protocols TLSv1.2 TLSv1.3;
禁用不安全的旧协议
其他原有配置...
}
HTTP强制跳转HTTPS
listen 80;
return 301 https://$host$request_uri;
技术解析:
- `ssl_session_timeout`和`ssl_session_cache`可以显著提升HTTPS性能
- `TLSv1.2`是目前最安全稳定的协议版本
- HTTP跳转确保所有流量都走加密通道
六、测试并重启Nginx
先测试配置是否正确:
nginx -t
如果没有报错,重启Nginx生效:
systemctl restart nginx
七、验证是否成功
打开浏览器访问你的网站:
1. URL应该自动跳转到https://开头
2.地址栏应该显示锁标志(不同浏览器样式不同)
3.点击锁标志可以查看证书详情
你也可以使用SSL Labs的在线测试工具:[https://www.ssllabs.com/ssltest](https://www.ssllabs.com/ssltest) ,输入你的域名进行专业检测。
八、常见问题解决方案
Q1:出现"NET::ERR_CERT_AUTHORITY_INVALID"错误?
A:通常是证书链不完整导致的。确保.pem文件中包含完整的证书链(包括中间CA)。
Q2:如何实现HTTP严格传输安全(HSTS)?
在Nginx配置中添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Q3:如何优化TLS性能?
推荐配置:
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305...';
SEO优化小技巧
完成HTTPS改造后别忘了:
1. Google Search Console中更新为HTTPS站点属性
2. WordPress等CMS中更新站点地址为HTTPS版本
3. CDN等第三方服务同步更新为HTTPS配置
Nginx HTTPS最佳实践
最后分享几个我在实际工作中的经验:
1.定期更新密钥和协议:至少每年更换一次密钥文件;及时跟进新TLS协议标准。
2.OCSP装订(Stapling)提升性能:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver [DNS服务器IP];
3.多域名管理技巧:如果有多个子域名可以使用通配符(*)或多域(SAN)型SSL证书记得把相关子域名都加入server_name。
4.监控到期时间:设置日历提醒或使用监控工具避免因过期导致服务中断。我就曾遇到过客户因忘记续期导致支付页面无法访问损失订单的情况!
通过以上步骤和技巧,相信你已经掌握了Nginx配置SSL的核心方法。记住在网络世界里,"裸奔"等于危险!赶快为你的网站穿上这件安全防护衣吧!
TAG:nginx配置域名ssl证书,nginx配置ssl证书无效,nginx 多域名ssl认证,nginx 配置域名,nginx ssl_ciphers配置,nginx的ssl证书