2022-06-25

使用acme申请泛域名S...

使用acme申请泛域名SSL证书

获取acme脚本

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

修改默认CA

由于当前最新的acme是以ZerroSSL作为默认CA方的,而他家的证书存在数量限制,如果我们需要申请多个证书时会有些不方便,所以一般我会将默认CA方变更为Let‘sEncrypt

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

这里使用DNS API模式进行申请证书

使用Cloudflare DNS API进行证书申请,需要获取API Key以及对应的账户邮箱。Cloudflare的API key可在“我的个人资料”->”API 密钥“中进行查看。

  • 导入相关环境变量
1
2
export CF_Key="***********************"
export CF_Email=**********@****.com
  • 申请命令
1
acme.sh  --issue  -d example.com  --dns dns_cf
  • 证书安装
nginx
1
2
3
4
5
6
acme.sh --install-cert \
--domain example.com \
--cert-file /path/to/cert/cert.pem \
--key-file /path/to/keyfile/key.pem \
--fullchain-file /path/to/fullchain/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"

apache
1
2
3
4
5
6
acme.sh --install-cert \
--domain example.com \
--cert-file /path/to/cert/cert.pem \
--key-file /path/to/keyfile/key.pem \
--fullchain-file /path/to/fullchain/fullchain.pem \
--reloadcmd "sudo systemctl reload apache2.service"

#### 查看当前系统环境下的所申请的证书信息
1
acme.sh --list

导出证书为pfx等格式,为emby或jellyfin使用

1
2
acme.sh --install-cert -d example.com --key-file key.pem --cert-file cert.pem
openssl pkcs12 -export -out emby.pfx -inkey key.pem -in cert.pem

注:
申请泛域名证书时-d参数为*.example.com



更多的证书申请方式可以参考官方Wiki