分享 Let's Encrypt SSL 每 80 天自動更新腳本,帶進度條指示

2022-03-16 02:55:38 +08:00
 duke807

因爲每次 renew 證書的時候,都要關閉一下 web 服務,網上用 cron 方式 renew 的太頻繁了,爲了減少掉線時間和次數,所以自己寫了一個腳本。

一個很簡單的腳本,代碼:
https://blog.d-l.io/auto-renew-letsencrypt

開機的時候通過 screen 命令自動運行腳本,需要查看的時候用 screen -r 命令調閱:

我一直很喜歡用 screen 工具把普通腳本當作 daemon 程序,看運行狀態比較方便,方便查錯和調試,可省掉一些複雜的 log 到文件的機制。

2227 次点击
所在节点    SSL
8 条回复
totoro625
2022-03-16 10:18:33 +08:00
为啥需要关闭一下 web 服务?
我用的
```
$ACME --issue \
--dns dns_dp \
--server zerossl \
--challenge-alias acme.example.com \
--keylength ec-256 \
-d example.com \
-d example2.com \
-d *.example.com \
-d *.example2.com
```
每月 1 号运行一次 GitHub Actions ,推送证书到 COS
需要的服务器 wget 回来
konakona
2022-03-16 10:37:15 +08:00
不用关闭 web 服务,申请证书成功后 web 服务 reload 下配置就好了。每次获取的证书难道不都是同名同姓的吗?
mritd
2022-03-16 10:53:59 +08:00
跑个题,要不要试试 Caddy
duke807
2022-03-16 12:55:42 +08:00
@konakona 查了一下,我沒有安裝插件 (the certbot apache plugin is not installed),我是用 --standalone 申請證書的,所以要關閉 web 服務,因爲 certbot 需要使用 web 端口。


@totoro625 沒看懂你這個是什麼原理,certbot 不是需要在你域名所在服務器上運行才可以的嗎?
ab
2022-03-16 13:02:24 +08:00
acme.sh 解千愁
konakona
2022-03-16 13:35:22 +08:00
@duke807 https://certbot.eff.org/instructions?ws=apache&os=ubuntubionic

为什么会出现需要关闭 web 服务的现象?总感觉是用法不对。

我 apache 、nginx ,用过 certbot 、lego 、traefik-acme ,都木有遇到过你这个情况耶。
konakona
2022-03-16 13:40:47 +08:00
或者你在 apache 里将 http challenge 的请求(一个路径 /.well-known/acme-challenge )做一个转发,也可以保障 web 服务不中断的情况下完成证书签发。

https://letsencrypt.org/zh-cn/docs/allow-port-80/

https://eff-certbot.readthedocs.io/en/stable/api/certbot.plugins.common.html?highlight=port#certbot.plugins.common.Addr.get_port
totoro625
2022-03-16 15:17:00 +08:00
申请证书一般有两种方式验证: http 和 dns 验证
http 方式需要服务器开启一个端口,验证 dns 的 ip 指向
dns 方式, 在域名上添加一条 txt 解析记录, 验证域名所有权
参考 acme.sh 的说明
https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

直接通过一个服务器申请全部证书最后分发到各个服务器即可

我这边都是内网服务器,所以直接通过 GitHub Actions 生成了
搜索排名第一的是这个教程: https://www.ioiox.com/archives/104.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/840645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX