使用 acme.sh 安装和更新单个多域证书

使用 acme.sh 安装和更新单个多域证书
#!/bin/bash

sudo /.../my-letsencrypt-clone/letsencrypt-auto certonly -v -t --webroot \
   -w /var/www/web1/ -d www.domain1.com -d domain1.com -d subdomain.domain1.com \
   -w /var/www/web2/ -d web2.com \
   -w /var/www/web3/ -d www.web3.com -d web3.com

# A couple of extra commands to move the renewed cert (in `/etc/letsencrypt/live/`) to 
# /etc/ssl/private/mycertfolder

sudo service apache2 restart
sudo service postfix restart
sudo doveadm reload

上述脚本是我过去几年来一直用来更新单个多域证书的脚本,但现在,由于弃用问题(我的服务器很旧,无法升级),我需要在acme.sh不更改当前设置的情况下使用它。但我有些怀疑。我猜测颁发和安装证书的最佳方法acme.sh是使用以下几个命令(期望 acme.sh cert-renewal cronjob 无需执行任何其他操作即可完成正确的操作):

$ acme.sh  --issue  \
-d www.domain1.com -d domain1.com -d subdomain.domain1.com -w /var/www/web1/ \
-d web2.com -w /var/www/web2/ \
-d www.web3.com -d web3.com -w /var/www/web3/

$ acme.sh --install-cert \
-d www.domain1.com -d domain1.com -d subdomain.domain1.com \
-d web2.com \
-d www.web3.com -d web3.com \
--cert-file      /etc/ssl/private/mycertfolder/cert.pem  \
--key-file       /etc/ssl/private/mycertfolder/key.pem  \
--fullchain-file /etc/ssl/private/mycertfolder/fullchain.pem \
--reloadcmd     "service apache2 restart; service postfix restart; doveadm reload"

但是根据文档,我不确定该命令是否会为所有域颁发单个证书,还是为每个-w选项颁发三个证书。文档中也没有严格指定,但我猜每个证书都为出现在它之前和最后一个之后的-w所有 s 指定了验证方法 (webroot) ,类似于 letsencrypt 的工作方式。-d-w

我的第二条命令是在假设第一条命令将为所有域颁发单个证书的情况下编写的,但我不确定如果只涉及一个证书或者还有更多需要考虑的事情,我是否必须真正再次编写所有域。

相关内容