Certbot 是一个免费的开源软件工具,用于自动使用 Let's Encrypt 证书来激活 HTTPS。要使用它和配置 Nginx,你可以按照以下步骤进行:
安装 Certbot:
对于 Ubuntu 系统,你可以使用以下命令来安装 Certbot 以及它的 Nginx 插件:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
对于其他操作系统,请参照 Certbot 官方网站上的说明:https://certbot.eff.org/
获取 SSL/TLS 证书:
运行 Certbot 并根据向导进行配置,以便自动获取和配置 SSL/TLS 证书:
sudo certbot --nginx
如果是第一次运行 Certbot,它会要求你提供一个电子邮件地址,并同意服务条款。
配置 Nginx 自动续订证书:
Let's Encrypt 发行的证书有效期为 90 天,所以我们需要设定定时任务来定期更新证书。你可以通过以下命令测试自动续订:
sudo certbot renew --dry-run
如果测试续订成功,你可以添加一个cron job来自动续订证书。编辑 crontab 文件:
sudo crontab -e
在文件中添加以下行来确保每12小时运行一次续订命令:
0 */12 * * * certbot renew --quiet
请记住,针对不同的操作系统和 Nginx 版本步骤可能会有所不同,建议查看 Certbot 的官方文档以获得最准确的说明。同时,在对 Nginx 进行任何更改后,不要忘记重新加载或重启 Nginx 以使更改生效:
sudo systemctl reload nginx
或者
sudo service nginx reload
更多详细信息和问题解决,请参照 Certbot 官方文档:https://certbot.eff.org/docs/。
Certbot 是一个开源的自动化工具,用于获取和安装证书,以便在您的服务器上启用 HTTPS。它支持多种认证方式,包括 Let's Encrypt 提供的免费证书。以下是使用 Certbot 并配置 Nginx 的基本步骤:
更新系统包列表:
sudo apt update
安装 Certbot:
sudo apt install certbot python3-certbot-nginx
运行 Certbot: 使用以下命令,Certbot 将自动配置 Nginx 并获取证书:
sudo certbot --nginx
按照提示操作,输入您的电子邮件地址并同意服务条款。
选择域名: Certbot 会询问您要获取证书的域名。
验证域名: Certbot 将尝试自动验证您的域名。
安装证书: Certbot 将自动安装证书并配置 Nginx。
编辑 Nginx 配置文件:
找到您的 Nginx 配置文件,通常位于 /etc/nginx/sites-available/
目录。
添加 SSL 配置: 在您的服务器块中添加以下配置:
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;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /var/www/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
替换 example.com
为您的域名。
重启 Nginx: 保存配置文件后,重启 Nginx 以应用更改:
sudo systemctl restart nginx
Certbot 会自动续期证书。您可以手动运行以下命令来检查证书状态并尝试续期:
sudo certbot renew --dry-run
使用浏览器或在线工具(如 SSL Labs)来验证您的 HTTPS 配置。
以下是一个完整的 Nginx 配置示例:
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;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /var/www/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
通过这些步骤,您可以使用 Certbot 为 Nginx 配置 HTTPS。如果有任何问题,请参考 Certbot 文档 和 Nginx 文档。