插件窝 干货文章 Nginx怎么配置加密证书访问实现

Nginx怎么配置加密证书访问实现

配置 证书 SSL Nginx 813    来源:    2025-04-26

Nginx配置HTTPS加密证书访问指南

要在Nginx上配置HTTPS加密证书访问,您需要完成以下步骤:

1. 获取SSL证书

首先,您需要获取SSL证书,可以选择:

  • 免费证书:如Let's Encrypt
  • 商业证书:从DigiCert、GeoTrust等CA购买

使用Let's Encrypt获取免费证书

# 安装Certbot工具
sudo apt-get install certbot python3-certbot-nginx

# 获取并安装证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

2. 配置Nginx支持HTTPS

基本HTTPS配置示例

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    # SSL证书配置
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    # SSL协议配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;

    # 其他配置
    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

3. 强制HTTP跳转HTTPS

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

4. 高级安全配置

启用HSTS (HTTP Strict Transport Security)

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

配置OCSP Stapling

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

5. 测试和重载配置

# 测试Nginx配置
sudo nginx -t

# 重载Nginx配置
sudo systemctl reload nginx

6. 自动续期证书(Let's Encrypt)

Let's Encrypt证书有效期为90天,建议设置自动续期:

# 测试续期
sudo certbot renew --dry-run

# 设置自动续期(添加到crontab)
0 12 * * * /usr/bin/certbot renew --quiet

常见问题解决

  1. 证书路径错误:确保ssl_certificatessl_certificate_key路径正确
  2. 权限问题:确保Nginx用户有读取证书文件的权限
  3. 协议不匹配:确保客户端支持服务器配置的TLS协议版本
  4. 混合内容警告:确保网页中所有资源都使用HTTPS链接

完成以上步骤后,您的网站应该可以通过HTTPS安全访问了。可以使用SSL Labs测试工具来检测您的SSL配置安全性。