侧边栏壁纸
博主头像
梦幻世界博主等级

行动起来,活在当下

  • 累计撰写 23 篇文章
  • 累计创建 2 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Let's Encrypt 使用教程,免费申请SSL证书

梦幻世界
2024-07-25 / 0 评论 / 0 点赞 / 95 阅读 / 3479 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-07-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Let’s Encrypt 简介

Let's Encrypt 是一个免费、自动化和开放的证书颁发机构 (CA),由互联网安全研究小组 (ISRG) 于 2015 年推出。它的主要目标是使得网站能够轻松实现 HTTPS 加密,从而提高互联网的安全性和隐私性。

Certbot 简介

Certbot 是Let’s Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let’s Encrypt 证书。

申请免费SSL证书

1、安装Certbot客户端

yum install certbot

2、获取机构签发的证书

certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com

certbot certonly 这个命令会为example.comwww.example.com这两个域名分别生成对应的证书。使用--webroot 参数会在/var/www/example 中创建.well-known 文件夹,这个文件夹里面包括一下验证文件,ertbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。这个命令在大多数情况下都可以满足需求。

但是有些时候我们的一些服务并没有根目录,例如一些微服务,这时候使用 --webroot 就走不通了。certbot 还有另外一种模式 --standalone , 这种模式不需要指定网站根目录,他会自动启用服务器的443端口,来验证域名的归属。我们有其他服务(例如nginx)占用了443端口,就必须先停止这些服务,在证书生成完毕后,再启用。

certbot certonly --standalone -d example.com -d www.example.com

证书生成完毕后,我们可以在 /etc/letsencrypt/live/ 目录下看到对应域名的文件夹,里面存放了指向证书的一些快捷方式。这时候我们的第一生成证书已经完成了,接下来就是配置我们的web服务器,启用HTTPS。

自动更新 SSL 证书

配置完这些过后,我们的工作还没有完成。 Let’s Encrypt 提供的证书只有90天的有效期,我们必须在证书到期之前,重新获取这些证书,certbot 给我们提供了一个很方便的命令,那就是 certbot renew。 通过这个命令,他会自动检查系统内的证书,并且自动更新这些证书。 我们可以运行这个命令测试一下:

certbot renew --dry-run

因为我们在生成证书的时候使用的是--standalone ,如果我们的部署了nginx并且开启了443端口的监听,那么执行上面的命令就会报错443端口被占用,所以我们在更新证书的时候需要奖nginx的服务停掉再执行更新命令。

证书是90天才过期,我们只需要在过期之前执行更新操作就可以了。 这件事情就可以直接交给定时任务来完成。linux 系统上有 cron 可以来搞定这件事情。 我新建了一个文件 certbot-auto-renew-cron, 这个是一个 cron 计划,这段内容的意思就是 每隔 两个月的 凌晨 2:15 执行 更新操作。

15 2 * */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"

--pre-hook 这个参数表示执行更新操作之前要做的事情,因为我有 --standalone 模式的证书,所以需要 停止 nginx 服务,解除端口占用。 --post-hook 这个参数表示执行更新操作完成后要做的事情,这里就恢复 nginx 服务的启用

最后我们用 crontab 来启动这个定时任务:

crontab certbot-auto-renew-cron

0

评论区