文档中心
Nginx娣诲姞SSL璇佷功璇︾粏鏁欑▼涓€姝ユ瀹炵幇缃戠珯HTTPS鍔犲瘑
时间 : 2025-09-27 16:27:09浏览量 : 4

在今天的互联网环境中,HTTPS加密已成为网站安全的标配。无论是保护用户隐私,还是提升搜索引擎排名,为Nginx服务器配置SSL证书都至关重要。本文将以通俗易懂的方式,手把手教你如何为Nginx添加SSL证书,并穿插实际案例和常见问题解析。
一、为什么要给Nginx加SSL证书?
1. 数据加密:防止传输中被窃听(比如公共WiFi下的账号密码)。
*示例*:当用户登录网站时,HTTP下输入的表单是明文传输,而HTTPS会加密成乱码,黑客截获也看不懂。
2. 身份验证:证明你的网站是真实的,不是钓鱼网站。
*示例*:浏览器地址栏的“小锁”标志会让用户更信任你的电商平台。
3. SEO优化:谷歌等搜索引擎优先收录HTTPS网站。
二、准备工作
在开始前,你需要:
1. 一台已安装Nginx的服务器(Ubuntu/CentOS等)。
2. 一个域名(如`example.com`)。
3. SSL证书文件(通常包括`.crt`和`.key`文件)。
*证书获取方式*:
- 免费:Let's Encrypt(适合个人和小企业)。
- 付费:DigiCert、GeoTrust(适合金融等高安全需求场景)。
三、详细操作步骤
步骤1:上传证书文件
将你的SSL证书文件(如`example.crt`和`example.key`)上传到服务器,建议存放在Nginx的配置目录下:
```bash
/etc/nginx/ssl/example.crt
/etc/nginx/ssl/example.key
```
*注*:如果目录不存在,用`mkdir -p /etc/nginx/ssl`创建。
步骤2:修改Nginx配置文件
找到网站的Nginx配置文件(通常在`/etc/nginx/sites-available/your_site.conf`),添加以下内容:
```nginx
server {
listen 443 ssl;
启用HTTPS默认端口443
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.crt;
证书路径
ssl_certificate_key /etc/nginx/ssl/example.key;
私钥路径
推荐的安全配置
ssl_protocols TLSv1.2 TLSv1.3;
禁用老旧协议(如TLSv1.0)
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
location / {
root /var/www/html;
index index.html;
}
}
*参数解释*:
- `ssl_protocols`:只允许安全的TLS版本(避免心脏出血漏洞)。
- `ssl_ciphers`:指定强加密算法组合。
步骤3:强制HTTP跳转HTTPS
为了避免用户访问旧的HTTP链接,在同一个配置文件中添加:
listen 80;
return 301 https://$host$request_uri;
301永久重定向到HTTPS
步骤4:测试并重启Nginx
1. 检查配置是否有语法错误:
```bash
sudo nginx -t
```
2. 重启Nginx生效:
sudo systemctl restart nginx
四、常见问题与解决方案
问题1:“SSL certificate is not trusted”错误
- 原因:中间证书未链全。
- *解决方法*:将中间证书合并到`.crt`文件中:
```bash
cat example.crt intermediate.crt > combined.crt
```
然后在配置中指向`combined.crt`。
问题2:浏览器提示“不安全”
- 原因:可能是证书过期或域名不匹配。
- *检查工具*:[SSL Labs](https://www.ssllabs.com/)测试评分需为A+。
五、高级优化建议
1. 开启HSTS(强制浏览器只走HTTPS):
```nginx
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
2. OCSP Stapling(加速证书验证):
ssl_stapling on;
ssl_stapling_verify on;
六、
通过以上步骤,你的Nginx服务器已成功升级为HTTPS加密连接。这不仅提升了安全性,还能增强用户信任感。如果遇到问题,记得先检查日志(`tail -f /var/log/nginx/error.log`),大多数错误都有明确提示。
*扩展阅读*:[Let's Encrypt自动续签教程](
) | [Nginx性能调优技巧](#)
TAG:nginx 添加ssl证书,nginx的ssl,nginx添加ssl证书没改端口会生效吗,nginx添加ssl证书出现内部错误,nginx ssl_preread,nginx部署ssl证书