目录

使用acme.sh申请通配符证书

acme.sh 实现了 acme 协议,可以从 letsencrypt 生成免费的证书。

中国大陆境内,访问可能会不成功

# Install from web
curl https://get.acme.sh | sh -s email=my@example.com

# Install from GitHub
curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m  my@example.com

source ~/.bashrc
acme.sh --version

acme.sh 脚本默认 CA 服务器是 ZeroSSL,切换 acme.sh 的默认 CA

acme.sh --set-default-ca  --server zerossl
acme.sh --set-default-ca --server letsencrypt

执行以下命令,这里以阿里云解析为例,创建AccessKey

创建一个 RAM 用户授予 AliyunDNSFullAccess 权限即可

export Ali_Key="abcd"
export Ali_Secret="1234"

acme.sh --issue --dns dns_ali --keylength 2048 -d domain.com -d *.domain.com -d *.test.domain.com

三级通配符域名需要*.xxx.domain.com才可以使用

mkdir -p /data/ssl_cert/domain.com

acme.sh --install-cert -d domain.com \
--key-file /data/ssl_cert/domain.com/domain.com.key  \
--fullchain-file /data/ssl_cert/domain.com/domain.com.cer

证书导出路径

/data/ssl_cert/domain.com/domain.com.key
/data/ssl_cert/domain.com/domain.com.cer

安装 acme.sh 后会自动创建 cronjob, 每天 0:00 点自动检测所有的证书,建议调整为每周运行

0 3 * * 0

为了配合证书生效,需要重载 Nginx 才行,添加一个定时重载 Nginx 的 cronjob

30 1 * * * systemctl reload nginx > /dev/null 2>&1

现在不需要去注册了,会自动注册

传送门:https://app.zerossl.com/signup

2020-12-01T15:28:22.png

传送门:https://app.zerossl.com/developer

2020-12-01T15:31:26.png

点击生成会生成你的eab-kid和eab-hmac-key,复制保存下来;

acme.sh --register-account --server zerossl \
        --eab-kid 你的eab-kid \
        --eab-hmac-key 你的eab-hmac-key

相关内容