348 字
2 分钟
在 OpenWRT 上使用 acme.sh 配置 SSL 证书
前言
OpenWRT 自带的 luci-app-acme 非常难用,而且找不到官方文档(luci很多插件都这样一坨,比如tinyproxy也是年久失修。。)所以我选择官方原版acmesh。
安装 acme.sh
wget -O - https://get.acme.sh | sh -s email=my@example.comcd ~/.acme.sh./acme.sh --upgrade --auto-upgrade配置 DNS API 密钥
编辑 ~/.acme.sh/account.conf 文件,添加以下内容:
由于我使用的是cloudflare的dns,如果你是其他的,请参照官方。
export CF_Zone_ID="aaaaaaaaaaa"export CF_Token="aaaaaaaa"申请证书
使用以下命令通过 Cloudflare 的 DNS 验证方式申请证书:
./acme.sh --issue --dns dns_cf -d admin.tski.uk -d '*.example.com' # dns方式可以申请通配符证书查看证书列表
可以使用以下命令查看已申请的证书:
./acme.sh --list安装证书
将申请到的证书安装到指定位置,并重启 uhttpd 服务:
./acme.sh --install-cert -d admin.tski.uk \--key-file /etc/uhttpd.key \--fullchain-file /etc/uhttpd.crt \--reloadcmd '/etc/init.d/uhttpd restart'验证安装是否有效
使用以下命令强制续期证书:
./acme.sh --renew -d admin.tski.uk --force如果安装成功,输出如下:
.......[Mon Feb 3 16:14:16 CST 2025] Your cert is in: /root/.acme.sh/admin.tski.uk_ecc/admin.tski.uk.cer[Mon Feb 3 16:14:16 CST 2025] Your cert key is in: /root/.acme.sh/admin.tski.uk_ecc/admin.tski.uk.key[Mon Feb 3 16:14:16 CST 2025] The intermediate CA cert is in: /root/.acme.sh/admin.tski.uk_ecc/ca.cer[Mon Feb 3 16:14:16 CST 2025] And the full-chain cert is in: /root/.acme.sh/admin.tski.uk_ecc/fullchain.cer[Mon Feb 3 16:14:17 CST 2025] Installing key to: /etc/uhttpd.key[Mon Feb 3 16:14:17 CST 2025] Installing full chain to: /etc/uhttpd.crt[Mon Feb 3 16:14:17 CST 2025] Running reload cmd: /etc/init.d/uhttpd restart[Mon Feb 3 16:14:17 CST 2025] Reload successful 在 OpenWRT 上使用 acme.sh 配置 SSL 证书
https://tski.uk/blog/openwrt-acmesh/