Let's Encrypt请求证书、续订与定时续订
我们可以从Let's Encrypt中方便地获得免费的SSL/TLS证书!
什么是Let's Encrypt
Let's Encrypt是一个提供免费SSL/TLS证书的证书颁发机构(CA)。它由非营利组织Internet Security Research Group(ISRG)创立,旨在提高互联网的安全性和隐私保护。
使用SSL/TLS证书可以加密您的网站和用户之间的通信,并且可以保护您的用户免受中间人攻击等安全威胁。在过去,获取SSL/TLS证书需要支付一定的费用并需要较为繁琐的配置过程,这限制了许多小型网站和个人博客使用SSL/TLS证书。
Let's Encrypt提供了一个自动化的证书颁发流程,可以方便地获得免费的SSL/TLS证书,同时也降低了配置的复杂度。与传统的商业CA不同,Let's Encrypt证书只有90天有效期,但可以通过自动化续订流程来延长有效期,这使得证书的管理更加便捷。
Let's Encrypt证书的免费和易于使用已经得到了广泛的认可和支持,目前已经成为许多网站管理员的首选证书颁发机构之一。
请求证书
- 首先检查是否安装了 Certbot
sudo apt list --installed | grep certbot
2. 安装Certbot
sudo apt install certbot python3-certbot-nginx
3. 使用Cerbot从Let's Encrypt请求证书
certbot certonly --webroot -w /var/www/your.example.com/ -d your.example.com
然后根据提示简单配置一下邮箱等之后,稍稍等候,恭喜,您的密钥、证书就生成成功了,存放在 /etc/letsencrypt/live/your.example.com/
里哦
续订
当您第一次使用Certbot为您的网站颁发SSL证书时,Certbot会自动为您在系统中生成一个配置文件,其中包含SSL证书的位置和其他详细信息。在后续的更新操作中,Certbot会读取该配置文件,找到需要更新的证书,并执行更新操作。
您可以通过执行 sudo certbot certificates
命令来查看您系统中所有已安装的证书及其相关信息。
您可以使用以下命令(以root身份)续订certbot已知的所有证书,并使用新证书(与现有证书具有相同的路径)重新加载nginx:
certbot renew --renew-hook "service nginx reload"
如上文所述,Let's Encrypt证书的最大有效期为90天, 所以我还是推荐您定期执行此命令,详细步骤请看下一段。
您可以使用试运行来测试续订,这将联系Let's Encrypt暂存服务器以对您的域进行实际测试,但不会存储生成的证书:
certbot --dry-run renew
或者,您可以通过以下方式强制提前续订:
certbot renew --force-renew --renew-hook "service nginx reload"
定时续订
可以将以下命令放在 /etc/crontab
中:
0 0 */60 * * root certbot renew --quiet --renew-hook "service nginx reload"
这句话的意思是:
在每60天的第一天,凌晨12点执行一次certbot renew命令来更新证书,如果更新成功则重新加载Nginx服务器。
具体解释如下:
0 0
:表示每天凌晨12点执行该任务。*/60
:表示每60天执行一次。*
:表示该任务每个月的每一天都会执行。root
:表示以root用户的身份来执行该命令。certbot renew
:表示执行certbot renew命令,该命令用于更新SSL证书。--quiet
:表示在执行该命令时不输出任何信息。--renew-hook "service nginx reload"
:表示在证书更新成功后重新加载Nginx服务器,使其可以使用最新的证书。
Have a nice day!🎇