自动申请Let's Encrypt证书脚本、程序

Let's Encrypt推荐的第三方客户端:链接 (opens new window)

推荐使用域名服务商提供的API进行操作验证的,各个域名服务商 (opens new window),目前以阿里云为例,创建API (opens new window)

# Linux系统

使用acme.sh (opens new window),操作说明 (opens new window)

以阿里云API常用命令:

# 安装
curl https://get.acme.sh | sh -s email=my@example.com
# 创建alias(可选)
alias acme.sh=~/.acme.sh/acme.sh
# 输入阿里云的API
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
# 生成证书
acme.sh --issue --dns dns_ali -d example.com
# 复制证书
acme.sh --install-cert -d example.com --key-file /path/key.pem --fullchain-file /path/cert.pem 
#--reloadcmd "service nginx force-reload"
# 开启自动更新程序
acme.sh --upgrade --auto-upgrade
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# Windows系统

# 群晖系统

是基于acme.sh进行的,替换默认证书,脚本链接 (opens new window),支持多个泛域名申请

操作步骤

# OpenWrt

操作步骤 (opens new window)

# 步骤1:安装套件

opkg install luci-ssl-openssl acme luci-app-acme
1

如果要使用基于DNS的证书验证,请同时安装DNS验证程序:

opkg install acme-dnsapi
1

# 步骤2:配置Web服务器

在这里,我们将告诉uhttpd重定向到https.

这些使用的OpenWRTuci命令 (opens new window),这是一种从配置文件中解析、获取、设置、编辑值和段的绝妙方法.它使编写OpenWRT脚本变得轻而易举.

uci set uhttpd.main.redirect_https=1
uci commit
/etc/init.d/uhttpd restart
1
2
3

# 步骤3: 配置acme.sh并获取证书

在您的路由器上:

  • 导航到LUCI中的服务 -> ACME证书,然后配置您的证书详细信息.确保为已配置的证书选择"用于uhttpd"和"已启用".

  • 如果您更喜欢使用命令行,只需编辑/etc/config/acme,然后运行/etc/init.d/acme start之后.

# 步骤4: 添加定时任务

15 2 3 * * /etc/init.d/acme restart
1

# 步骤5: 配置防火墙

打开或转发LUCI端口以进行外部访问.(使用网络界面)