侧边栏壁纸
博主头像
5faith分享栈

憧憬未来

  • 累计撰写 9 篇文章
  • 累计创建 13 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Let's Encrypt免费的SSL证书、续期

faith5
2024-12-26 / 0 评论 / 0 点赞 / 31 阅读 / 0 字

参考

1. 安装

1.1 安装snapd软件

sudo yum install snapd
sudo systemctl start snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

1.2 使用snapd安装certbot

snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

1.3 证书生成

方式一: 使用certbot生成证书 (默认文件的方式验证,需要80端口能够访问)

sudo certbot certonly --nginx
#(1)输入邮箱 (Enter 'c' to cancel): 
abc123@foxmail.com
#(2) 注册服务  You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
#(3) 输入有生成的证书域名,多个用空格分开 Please enter the domain name(s) you would like on your certificate (comma and/or space separated) 
(Enter 'c' to cancel): www.xxx.cn

#生成成功后命令行会显示证书文件在:
/etc/letsencrypt/live/www.xxx.cn/fullchain.pem;
/etc/letsencrypt/live/www.xxx.cn/privkey.pem;

方式二: 使用dns的方式验证 (用于80端口不可用的情况,需要在域名解析处添加txt解析验证)

sudo certbot certonly --manual --preferred-challenges dns -d www.xxx.cn

[root@hecs-90770 ~]# certbot certonly --manual --preferred-challenges dns -d www.xxx.cn
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for www.xxx.cn

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/www.xxx.cn/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/www.xxx.cn/privkey.pem
This certificate expires on 2025-01-22.
These files will be updated when the certificate renews.

2. 卸载

#yum安装,使用下面命令进行移除
sudo yum remove certbot

3. 定时续期

#测试续期
sudo certbot renew --dry-run

# 为了尽量确保证书不失效,我们配置一下定时任务即可更新证书并重启nginx。
crontab -e
# 最后追加以下内容
0 0 * 1 * sudo certbot renew && nginx -s reload


#报错
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping.

可以看到,问题的原因是:An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.
也就是需要使用--manual-auth-hook参数来指定一个脚本来续签证书。
问题原因
出现这个问题的原因是,第一次申请证书的时候使用的是DNS验证方式,而续签时需要使用脚本来更新DNS记录,如果你想使用脚本来更新的话,可以从github中搜寻相关自动DNS验证脚本,本文将使用另一种方式解决。
问题解决
可以使用standalone命令来解决续签问题,使用该方法的前提是,本机的certbot目录中已存在之前申请过的证书相关资料

certbot certonly --standalone

添加新证书

sudo certbot certonly --nginx --domains xxx.xxxxx.com

0

评论区