要配置Nginx支持HTTPS,你需要完成以下步骤:

  1. 获取SSL证书

    • 从证书颁发机构(CA)获取SSL证书,通常包括证书文件(如certificate.crt)和私钥文件(如private.key)。

    • 如果你使用Let's Encrypt,可以使用certbot工具自动获取和配置证书。

  2. 配置Nginx

    server {
        listen 443 ssl;
        server_name yourdomain.com;
    
        ssl_certificate /path/to/your/certificate.crt;
        ssl_certificate_key /path/to/your/private.key;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
    
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    • listen 443 ssl;:监听443端口并启用SSL。

    • ssl_certificatessl_certificate_key:指定证书和私钥的路径。

    • ssl_protocolsssl_ciphers:配置SSL协议和加密套件。

    • 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default

    • server块中添加或修改以下内容:

  3. 重定向HTTP到HTTPS(可选):

    server {
        listen 80;
        server_name yourdomain.com;
        return 301 https://$host$request_uri;
    }
    • 如果你希望所有HTTP请求都重定向到HTTPS,可以在Nginx配置中添加以下内容:

  4. 测试配置

    • 使用nginx -t命令测试配置文件是否正确。

    • 如果测试通过,使用systemctl reload nginxservice nginx reload重新加载Nginx配置。

  5. 防火墙配置

    sudo ufw allow 443/tcp
    • 确保防火墙允许443端口的流量。例如,使用ufw

完成以上步骤后,你的Nginx服务器应该已经配置好HTTPS,并且可以通过https://yourdomain.com访问。

本篇文章内容来源于:nginx 配置https