扩展现有的全链证书

扩展现有的全链证书

我想扩展现有文件而不是为子域创建新证书。

我的文件中已有这些域:

certtool -i < /etc/letsencrypt/live/example.org-0002/fullchain.pem|grep DNSname
                        DNSname: forum.example.com
                        DNSname: m.example.de
                        DNSname: m.example.org
                        DNSname: example.com
                        DNSname: example.de
                        DNSname: example.org
                        DNSname: wiki.example.org
                        DNSname: www.example.com
                        DNSname: www.example.de
                        DNSname: www.example.org

(是debian 中certtool软件包的一部分)gnutls-bin

我知道,有这个certbot --expand选项,但如果我没有再次获得确切的域集,它将创建一个带有下一个后缀的新证书-0003

如果我只想将一个域添加到现有的证书文件中,如何防止这种情况发生?

答案1

使用以下命令从输出中创建一个列表:

echo 'echo "-d $@"'>/tmp/runme.sh
chmod +x /tmp/runme.sh
domains_with_hyphen_d="$(certtool -i < /etc/letsencrypt/live/example.org-0002/fullchain.pem|grep DNSname|cut -d ":" -f2| xargs -n 1 /tmp/runme.sh|xargs)"
certbot certonly --webroot -w /usr/share/nginx/html/ --expand -d newsubdomain.example.org $domains_with_hyphen_d

答案2

我一直在寻找一些 certbot 开关,因此我不必编写现有证书的所有域,但 certbot 没有这样的开关。所以我提出了这个解决方案。

CERTNAME=example
DOMAINS=$(certbot certificates --cert-name ${CERTNAME}|grep Domains|cut -d\  -f 6-|sed 's/ /,/g')
NEWDOMAINS=new.example.com,othernew.example.com
certbot certonly --cert-name ${CERTNAME} --expand --domains ${DOMAINS},${NEWDOMAINS}

注意:如果您的证书没有 --cert-name,请改用 --domain 以及现有证书的任何现有 DNS 替代名称。

相关内容