ssl新闻资讯

文档中心

Nginx娣诲姞SSL璇佷功璇︾粏鏁欑▼涓€姝ユ瀹炵幇缃戠珯HTTPS鍔犲瘑

时间 : 2025-09-27 16:27:09浏览量 : 4

2Nginx娣诲姞SSL璇佷功璇︾粏鏁欑▼涓€姝ユ瀹炵幇缃戠珯HTTPS鍔犲瘑

在今天的互联网环境中,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证书