作者:匿名
发布:3/1/2025 5:29:11 PM

0. 必备条件

1个域名,托管到acme.sh支持的平台,如Cloudflare, 阿里云,腾讯云等。本文后续命令以Cloudflare为例来说明。添加解析记录指向自己要申请证书的设备IP。

Linux/Windows/OpenWRT, 这里以Linux/OpenWRT为例

1. acme.sh安装

1.1 后台安装

进入系统-》软件包下,搜索acme, 参照下图安装

屏幕截图 2025-03-02 012801.png

luci-app-acme,luci-i18n-acme-zh-cn这两个是后台管理界面,可以不安装,因为后台管理界面中操作怎么配都无法申请成功。

1.2 验证是否安装成功

连上SSH,执行以下名命令,看到显示帮助内容,则说明安装成功

[root@B702:19:58 ~] #cd /usr/lib/acme/client/  # 进入acme安装到的文件夹
[root@B702:19:58 ~] #cacme.sh

2. 命令方式申请证书

2.1 更换证书服务商(可选)

acme被ZeroSSL收购,其默认的证书方式为ZeroSSL,如果想用letsencrypt,可以用以下命令更改:

/usr/lib/acme/client/acme.sh --set-default-ca  --server  letsencrypt

目前 acme.sh 支持 5 个正式环境 CA,分别是 Let's EncryptBuypassZeroSSLSSL.com 和 Google Public CA,默认使用 ZeroSSL,如果需要更换可以使用上面命令,将--server后的CA名按下表替换:

letsencrypt,buypass,zerossl,ssl.com,google

几个 CA 的简单对比

功能 Let's Encrypt Buypass ZeroSSL SSL.com Google Public CA
有效期 90 天 180 天 90 天 90 天 90 天
多域名 支持 支持,最多 5 个 支持 收费支持 支持
泛域名 支持 不支持 支持 收费支持 支持
Rate Limit 收费无 未知
GUI 管理
ECC 证书链 未知
客户支持 社区 收费 收费 收费 收费
兼容性 优秀   某些客户端不支持    
国内访问         不能直接访问

简单来说,如果没有特殊需求,可以选择 Let's Encrypt,如果服务器在国内,可以选择 ZeroSSL 或 Buypass,如果愿意付费得到更好的服务和保障,可以选择 ZeroSSL 和 SSL.com,如果面向欧盟用户,可以选择 Buypass 和 ZeroSSL。

注意:经过测试 Google Public CA 的 ACME 验证域名在国内是无法访问的,只有国外服务器才可以申请,申请完成后的证书并无影响。

2.2 执行以下命令申请证书

进入以下路径:/usr/lib/acme/client/

acme.sh --register-account -m youname@qq.com  # 设置邮箱
export CF_Token="3BUI1xxxxxxxxxxxxxxxxxxxXTSrFzNmeWW"
export CF_Zone_ID="badxxxxxxxxxxxxxxxxxxxxxxxxxxxc78"
acme.sh --issue --dns dns_cf -d 500599.xyz -d '*.500599.xyz'

这种DNS验证方式申请的证书是泛域名证书,即各个子域名都可以用这个证书。

另外一种http验证方式仅能申请某个子域名的证书,且要配合nginx等web服务,且80端口要能用(一般家庭网络的80,443端口都已被封杀不能使用),这里没有采用。

2.2 证书保存路径

/root/.acme.sh/500599.xyz_ecc

Sun Mar  2 01:21:40 CST 2025] Your cert is in: /root/.acme.sh/500599.xyz_ecc/500599.xyz.cer
[Sun Mar  2 01:21:40 CST 2025] Your cert key is in: /root/.acme.sh/500599.xyz_ecc/500599.xyz.key
[Sun Mar  2 01:21:40 CST 2025] The intermediate CA cert is in: /root/.acme.sh/500599.xyz_ecc/ca.cer
[Sun Mar  2 01:21:40 CST 2025] And the full chain certs is there: /root/.acme.sh/500599.xyz_ecc/fullchain.cer

3. 使用证书

比如caddy, 直接配置路径指向full chain证书即可

tls /root/.acme.sh/500599.xyz_ecc/fullchain.cer  /root/.acme.sh/500599.xyz_ecc/500599.xyz.key

配置完成后,用浏览器打开网站,点击网址前的小按钮,打开证书查看证书信息。

4. 自动续期

目前证书在 60 天以后会自动更新,你无需任何操作,因为在acme.sh安装时,已经把相关的自动更新程序写入到crontab中,如果想要查看,可以通过以下命令:

crontab -l

输出内容包含一个自动更新程序,大致内容如下:

0 0 * * * /etc/init.d/acme start
更新:2025-04-24
阅读:160
Posted by 1
1