作者:匿名
更新:7月前

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 Encrypt、Buypass、ZeroSSL、SSL.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

5 相关链接

浏览器四大金刚一致同意将SSL/TLS证书最长有效期缩短至47天

三行命令申请let's encrypt泛域名证书,Ubunt24.04安装acme.sh, 并申请证书全过程记录

什么是泛域名证书,DV证书,OV证书

Tags: acme.sh   证书   OpenWRT  
1年前
3122
1
2