在Debian上将Nginx与Let’s Encrypt(LE)集成,可以通过Certbot工具来实现。Certbot是一个自动化的证书管理工具,可以轻松地为Nginx配置SSL/TLS证书。以下是详细步骤:
首先,确保你的系统是最新的,并安装Certbot及其Nginx插件。
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取并安装Let’s Encrypt证书。你可以选择为单个域名或多个域名获取证书。
sudo certbot --nginx -d yourdomain.com
sudo certbot --nginx -d domain1.com -d domain2.com
在运行上述命令时,Certbot会提示你输入电子邮件地址、同意服务条款,并选择是否将Nginx配置文件重定向到Certbot的默认位置。
Certbot会自动修改你的Nginx配置文件以启用HTTPS。通常,它会创建一个符号链接,指向Certbot生成的配置文件。
例如,Certbot可能会创建一个符号链接:
/etc/nginx/sites-available/yourdomain.com-le-ssl.conf -> /etc/letsencrypt/options-ssl-nginx.conf
你需要确保Nginx的主配置文件(通常是/etc/nginx/nginx.conf)包含了对这些站点的引用。例如:
include /etc/nginx/sites-enabled/*;
在重新加载Nginx之前,测试配置文件是否有语法错误。
sudo nginx -t
如果一切正常,重新加载Nginx以应用更改。
sudo systemctl reload nginx
Let’s Encrypt证书通常每90天到期。Certbot可以自动续期证书。你可以设置一个cron作业或使用systemd定时器来自动执行续期。
Certbot会自动创建一个systemd服务文件和一个定时器文件。你可以手动启用和启动定时器:
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
定时器会每天检查证书是否需要续期,并在证书到期前30天自动续期。
最后,确保你的网站可以通过HTTPS访问,并且证书已正确安装。
curl -I https://yourdomain.com
你应该看到HTTP状态码200,并且响应头中包含Strict-Transport-Security。
通过以上步骤,你就可以在Debian上成功地将Nginx与Let’s Encrypt集成,并自动管理SSL/TLS证书。