nginx 如何使用 let's encrypt 实现https

要在Nginx中使用Let's Encrypt实现HTTPS,可以按照以下步骤操作:

  1. ​​安装Certbot工具​​
    首先需要安装Certbot及其Nginx插件,不同系统的安装命令如下:

    • Ubuntu/Debian:
       
       
      sudo apt update
      sudo apt install certbot python3-certbot-nginx
    • CentOS/RHEL:
      sudo yum install epel-release
      sudo yum install certbot python3-certbot-nginx
  2. ​​申请SSL证书​​
    运行以下命令为你的域名申请证书(替换example.com为你的域名):

     
    sudo certbot --nginx -d example.com -d www.example.com

    Certbot会自动验证域名所有权并生成证书文件,存储在/etc/letsencrypt/live/example.com/目录下

     
  3. ​​配置Nginx​​
    Certbot通常会自动修改Nginx配置,但你可以手动检查或调整。确保配置文件中包含以下内容:

     
     
    server {
        listen 80;
        server_name example.com www.example.com;
        return 301 https://$host$request_uri;  # 强制跳转HTTPS
    }
    
    server {
        listen 443 ssl;
        server_name example.com www.example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_protocols TLSv1.2 TLSv1.3;  # 推荐仅启用较新协议
        # 其他SSL优化参数(如加密套件、HSTS等)
        location / {
            root /var/www/html;
            index index.html;
        }
    }
  4. ​​重启Nginx​​
    应用配置并重启Nginx服务:

    sudo nginx -t   # 测试配置语法
    sudo systemctl restart nginx
  5. ​​自动续期设置​​
    Let's Encrypt证书有效期为90天,Certbot默认会配置自动续期任务。可通过以下命令测试:

     
    sudo certbot renew --dry-run

    如果续期失败,检查定时任务是否正常(如systemctl status certbot.timer

     

​​注意事项​​:

  • 确保域名已正确解析到服务器IP。
  • 防火墙需开放80(HTTP验证)和443(HTTPS)端口
     
  • 若需代理其他服务(如Flask),需在Nginx配置中添加proxy_pass指向本地端口
     

 

posted on 2025-05-02 19:26  袜子破了  阅读(111)  评论(1)    收藏  举报