サブドメインの新しい証明書を作成する代わりに、既存のファイルを拡張したいと思います。
私のファイルにはすでに次のフィールドがあります。
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
( certtool
Debian パッケージの一部)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代替名を使用してください。