目录
从零开始在 Amazon Linux EC2 使用 Certbot 配置 SSL 证书
常常为了 AWS Cloud 的免费计划而到期后不得不使用新的账号部署服务器,导致原服务器中的程序需要重新部署一遍,其中就包含站点的SSL证书需要重新生成,本文旨在记录当初始化一个全新的 Amazon Linux EC2 服务器时,使用 Certbot 生成 SSL 证书的步骤。
1. EPEL源安装
Amazon Linux是默认没有安装 Certbot 的源,首先需要安装包含 Certbot 的 epel 源
# EC2
$ sudo amazon-linux-extras install epel
若是自有 centos 服务器可使用
yum install epel-release
安装
2. 安装Certbot
这里使用的是 nginx 做为入口转发服务器,其他如apache、canddy等,安装目标自行变通
$ yum install certbot python2-certbot-nginx
3. 证书签发
证书签发过程会校验域名从属,通常是在 DNS 记录加一条 TXT 记录,然后点击验证
# 普通域名签发
$ certbot certonly -d www.example.com -d example.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
# 泛域名签发
$ certbot certonly -d "*.example.dev" -d example.dev --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
验证从属关系,签发完成后,会得到以下提示信息
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.dev/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.dev/privkey.pem
Your certificate will expire on 2023-11-26. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
上面的信息告诉签发证书的公私钥路径以及失效时间,检查nginx服务,是否自动配置,若没有按照上述路径自行配置
4. 证书续订
证书签发后默认有效期90天,到期前收到邮件通知,很多文章写的是通过定时任务执行 certbot renew
的方式自动更新,不适用,自己的续订方式如下:
# 证书有效期检查
$ certbot certificates
# 普通域名
$ certbot certonly -d www.example.com -d example.com
# 泛域名
$ certbot certonly -d "*.example.dev" -d example.dev --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
5. 证书撤销
签发的免费证书有20的额度限制,同一账号,无效的、错误的、无用的证书可以直接删除或者撤销,这里的删除不仅仅是物理意义的在本地删除证书公私钥文件,而是签发服务器也要进行删除
# 列出所有
$ certbot certificates
# 撤销证书
$ certbot revoke --cert-path /etc/letsencrypt/live/example.com/fullchain.pem
# 删除证书
$ certbot delete
版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2023/11/use-certbot-ssl-amazon-linux/