📅  最后修改于: 2023-12-03 14:40:03.332000             🧑  作者: Mango
Certbot是一个免费的、开源的、自动化的证书颁发工具,可以用于在Web服务器上获取和安装SSL证书。
Nginx是一个高性能的Web服务器和反向代理服务器,并可以用作电子邮件代理服务器。
本文将介绍如何使用Certbot和Nginx来为你的新域名安装SSL证书。
在开始之前,确保你已经拥有一个新的域名,并且已经使用Nginx将其配置为虚拟主机。
你需要将新域名解析到你的服务器上,确保DNS解析正确。
你需要在服务器上安装Nginx和Certbot。
# 在Debian/Ubuntu上安装Nginx和Certbot
sudo apt-get update
sudo apt-get install nginx certbot python3-certbot-nginx
# 在CentOS上安装Nginx和Certbot
sudo yum update
sudo yum install nginx certbot python3-certbot-nginx
使用Certbot获取SSL证书非常容易,只需运行以下命令:
sudo certbot --nginx -d yourdomain.com
此命令将使用Nginx插件自动检测您的虚拟主机配置,并在证书颁发机构(例如Let's Encrypt)中注册您的新域名。
Certbot将要求您提供您的电子邮件地址,以便您在证书到期之前接收到通知,以及您是否同意服务条款。
您还需要选择是否允许Certbot将HTTP流量重定向到HTTPS。如果您选择了这个选项,Certbot会自动为您添加重定向规则到Nginx配置文件中。
证书颁发完成后,Certbot会将证书和密钥文件存储在/etc/letsencrypt/live/yourdomain.com/
目录下。
完成证书颁发之后,您需要更新您的Nginx配置文件以使用新证书。
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# ... 其他配置 ...
}
在上面的配置文件中,我们指定了SSL证书和密钥文件的路径,并且将服务器监听端口更改为443。
Let's Encrypt提供的证书默认每90天需要更新一次。为了确保您的证书不会到期,您可以使用Certbot的自动更新功能。
sudo certbot renew --dry-run
此命令将测试Certbot是否可以自动更新您的证书。如果一切正常,您可以设置一个cronjob以定期更新您的证书。
sudo crontab -e
# 添加以下行以每月更新证书
30 2 1 * * sudo certbot renew --quiet
在本文中,我们了解了如何使用Certbot和Nginx为新域名安装SSL证书。我们还学习了如何更新Nginx配置文件以使用新证书,并设置了自动更新。
自动化证书颁发和更新可以帮助您确保您的网站始终受到保护,并防止证书到期导致的服务中断。