Webrootプラグインは、
${webroot-path}/.well-known/acme-challenge
にリクエストされたドメインごとに一時ファイルを作成することで機能します。 次に、Let’s Encrypt検証サーバーは、要求された各ドメインのDNSがcertbotを実行しているサーバーに解決することを検証するHTTPリクエストを作成します。
私的に使用されているホームサーバーでは、ポート80が無効になっています。つまり、ルーターでポート転送が有効になっていません。そのポートを開くつもりはありません。
ドメインの所有権を検証するために、検証サーバーがHTTPリクエストではなくHTTPS(ポート443)リクエストを行う必要があることをcertbotに伝えるにはどうすればよいですか?
検証サーバーはデフォルトですでにHTTPを使用しているため、ホームサーバーの証明書を検証する必要さえありません。自己署名証明書または更新の準備ができている証明書を持っている可能性がありますが、それは問題ではありません。
現在、証明書を作成/更新するために、ポート80転送とその上のサーバーを有効にする必要がある状況にあります。これでは、cronjobを使用して証明書を更新できません。まあ、十分な作業があれば十分ですが、既に443でリッスンしているサーバーがあります。
で報告されているようにhttps://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47letsencrypt.sh アップデーターはDNS経由の検証をサポートします。これを実装したアップデータスクリプトはほとんどないようです。ただし、HTTPメソッドは、初期構成の実装が最も簡単です。
お持ちのスクリプトでは、更新にTNS SNIまたは事前鍵の所有証明を使用できます。仕様は https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 にあります。この場合は、HTTPを有効にする必要はありません。