ssl新闻资讯

文档中心

Linux涓婲ginx閰嶇疆HTTPS璇佷功鍏ㄦ敾鐣モ€斺€斾粠鐢宠鍒颁紭鍖栫殑瀹炴垬鎸囧崡

时间 : 2025-09-27 16:23:42浏览量 : 3

2Linux涓婲ginx閰嶇疆HTTPS璇佷功鍏ㄦ敾鐣モ€斺€斾粠鐢宠鍒颁紭鍖栫殑瀹炴垬鎸囧崡

在当今互联网环境中,HTTPS早已成为网站安全的标配。作为Linux系统中最流行的Web服务器之一,Nginx搭配HTTPS证书不仅能保障数据传输安全,还能提升搜索引擎排名。本文将以小白也能听懂的方式,手把手教你如何在Linux系统中为Nginx配置HTTPS证书,并穿插实际案例和避坑指南。

一、为什么需要HTTPS?先看两个血泪教训

1. 案例1:钓鱼攻击

某电商网站未启用HTTPS,黑客在公共WiFi中劫持用户访问的页面,将“支付按钮”替换成恶意链接,导致用户资金被盗。

2. 案例2:SEO降权

谷歌明确将HTTPS作为搜索排名因素,某博客站长因长期使用HTTP,流量被竞品反超。

HTTPS的核心作用:通过SSL/TLS加密传输数据(比如密码、银行卡号),同时验证网站身份(防止“山寨网站”)。

二、准备工作:证书类型与选择

在配置前,你需要一个SSL证书。常见的有三种:

1. 免费证书(Let's Encrypt)

- 适合个人博客、测试环境

- 有效期90天,需定期续签

- 示例命令申请:

```bash

sudo certbot --nginx -d example.com

```

2. 付费证书(DigiCert/Symantec)

- 适合企业官网、金融类站点

- 提供更高额度的保险和人工支持

3. 自签名证书

- 仅用于内网测试(浏览器会警告“不安全”)

三、Nginx配置HTTPS全流程(附代码)

步骤1:安装Nginx和OpenSSL

```bash

Ubuntu/Debian

sudo apt update && sudo apt install nginx openssl

CentOS/RHEL

sudo yum install nginx openssl

```

步骤2:上传证书文件

假设你已购买证书,通常会拿到:

- `example.com.crt`(公钥)

- `example.com.key`(私钥)

- (可选)CA中间证书链

将它们上传到服务器目录,例如:

/etc/nginx/ssl/example.com.crt

/etc/nginx/ssl/example.com.key

步骤3:修改Nginx配置文件

编辑站点配置文件(通常位于`/etc/nginx/sites-available/your_site`),添加以下内容:

```nginx

server {

listen 443 ssl;

server_name example.com;

ssl_certificate /etc/nginx/ssl/example.com.crt;

ssl_certificate_key /etc/nginx/ssl/example.com.key;

强制启用TLS 1.2+(禁用不安全的旧协议)

ssl_protocols TLSv1.2 TLSv1.3;

HTTP自动跳转到HTTPS(避免用户误访问)

if ($scheme = http) {

return 301 https://$server_name$request_uri;

}

}

步骤4:重启Nginx并测试

sudo nginx -t

检查语法是否正确

sudo systemctl restart nginx

用浏览器访问https://example.com ,确认锁图标出现?

四、高级优化技巧

1. OCSP Stapling加速验证

浏览器通常需要联系CA验证证书状态,这会拖慢速度。OCSP Stapling让Nginx代为验证:

ssl_stapling on;

ssl_stapling_verify on;

resolver 8.8.8.8;

Google DNS

2. HSTS防止降级攻击

强制浏览器始终使用HTTPS(即使手动输入HTTP):

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

3. 性能调优

启用会话复用减少握手开销:

ssl_session_cache shared:SSL:10m;

ssl_session_timeout 10m;

五、常见问题排查

- 错误1:“NET::ERR_CERT_AUTHORITY_INVALID”

原因:中间证书链缺失。解决方案:合并CA证书到`.crt`文件:

```bash

cat example.com.crt intermediate.crt > combined.crt

```

- 错误2:Nginx启动失败

检查私钥是否匹配公钥:

openssl x509 -noout -modulus -in example.com.crt | openssl md5

openssl rsa -noout -modulus -in example.com.key | openssl md5

两个MD5值必须一致!

六、

通过本文的步骤,你已成功为Nginx穿上HTTPS的“防弹衣”。记住安全是一个持续的过程——定期更新证书、监控漏洞公告(如OpenSSL的CVE)、使用工具[SSL Labs](https://www.ssllabs.com/)测试配置强度。如果你遇到问题,欢迎在评论区留言讨论!

TAG:linux nginx https 证书,nginx ca证书,nginx证书链,nginxssl证书配置,nginx 证书生成