Let's Encrypt请求证书、续订与定时续订

我们可以从Let's Encrypt中方便地获得免费的SSL/TLS证书!

Let's Encrypt请求证书、续订与定时续订

什么是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证书的免费和易于使用已经得到了广泛的认可和支持,目前已经成为许多网站管理员的首选证书颁发机构之一。

请求证书

  1. 首先检查是否安装了 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!🎇