Back

使用 acme.sh 签发通配符 SSL 证书

By ROYWANG 十一月 06, 2022 PROJ

看了很多使用 acme.sh 签发 通配符 SSL 的教程,但讲的比较笼统,所以打算写个详细教程记录一下。

此处以 ZeroSSL 为例,acme.sh也可签发其他证书,可自行研究。

不同品牌证书之间优劣不在此赘述。

2024-08-18更新:增加安装证书以及自动续期。


部署 ACME.SH

下载 acme.sh

1
curl  https://get.acme.sh | sh

img

创建文件链接

1
alias acme.sh=~/.acme.sh/acme.sh

img

切换证书为 ZeroSSL

1
2
3
acme.sh --set-default-ca --server zerossl
#国内服务器推荐 letsencrypt
acme.sh --set-default-ca --server letsencrypt

img

获取zeroSSL eab

打开 https://app.zerossl.com/developer

注册账号并登录,打开页面后点击 Generate

img

绑定邮箱,输入你注册使用的邮箱

1
acme.sh --register-account -m YourEmail

img

获取 EAB KID 和 EAB HMAC Key 并且按格式填写

1
2
3
acme.sh  --register-account  --server zerossl \
--eab-kid EAB KID \
--eab-hmac-key EAB HMAC Key

img

获取DNSPOD API

这里是通过自动 DNS 解析来进行 DNS 验证,也可选择文件验证,但推荐自动验证。

此处以 DNSPOD为例,其他运营商操作类似。

打开 https://console.dnspod.cn/account/token/token 获取 ID/KEY

img

配置DNSPOD API

1
2
export DP_Id="YourID"
export DP_Key="YourKey"

img

自动签发通配符

1
acme.sh --issue --dns dns_dp -d *.domain.com -d domain.com --keylength ec-256

img

img

此时证书签发成功,绿色的部分为证书的存储路径,部署在服务器即可。

fullchain.cer 是证书内容,xxx.key 是证书的私钥。

安装证书及自动续期

在 shell 命令行输入以下命令

1
2
3
4
acme.sh --install-cert -d *.domain.com -d domain.com  --ecc \
--key-file /cert/domain.com/privkey.pem \
--fullchain-file /cert/domain.com/fullchain.pem \
--reloadcmd "service nginx force-reload"

其中具体的目录以及域名需要手动修改。

后语

步骤可能有错误,希望大家斧正。

许可协议

本文由 ROYWANG 原创,采用 CC BY-NC-SA 4.0 协议。转载请注明出处。

PERMALINK

https://roy.wang/acme-sh-ssl/

Comments