插件窝 干货文章 在Nginx服务器中怎么启用SSL的配置

在Nginx服务器中怎么启用SSL的配置

SSL Nginx 配置 证书 58    来源:    2025-04-21

Nginx服务器启用SSL配置指南

要在Nginx服务器上启用SSL,您需要完成以下步骤:

1. 获取SSL证书

首先,您需要获取SSL证书和私钥文件。您可以从以下途径获取: - 从证书颁发机构(CA)如Let's Encrypt、DigiCert等购买 - 使用Let's Encrypt免费证书 - 自签名证书(仅用于测试)

2. 基本SSL配置

在Nginx配置文件中(通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/your-site),添加以下SSL配置:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    # 证书文件路径
    ssl_certificate /path/to/your_domain.crt;
    ssl_certificate_key /path/to/your_domain.key;

    # 启用SSL会话缓存以提高性能
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 指定支持的协议和密码套件
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
    ssl_prefer_server_ciphers on;

    # 其他服务器配置...
    location / {
        root /var/www/html;
        index index.html;
    }
}

3. 强制HTTPS重定向(可选但推荐)

将所有HTTP流量重定向到HTTPS:

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

4. 高级SSL配置(推荐)

# 启用HTTP严格传输安全(HSTS)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

# 启用OCSP Stapling提高SSL验证性能
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

# 禁用不安全的老旧SSL协议
ssl_protocols TLSv1.2 TLSv1.3;

5. 配置完成后

  1. 测试Nginx配置:

    sudo nginx -t
    
  2. 重新加载Nginx配置:

    sudo systemctl reload nginx
    

6. 验证SSL配置

使用以下工具验证您的SSL配置: - SSL Labs测试工具 - 命令行工具: bash openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

使用Let's Encrypt免费证书

如果您想使用Let's Encrypt免费证书,可以安装Certbot:

# 安装Certbot
sudo apt install certbot python3-certbot-nginx

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

# 设置自动续期
sudo certbot renew --dry-run

这样您的Nginx服务器就成功启用了SSL/TLS加密连接。