CertbotとNginxサーバーブロックジェネレータの組み合わせ

CertbotとNginxサーバーブロックジェネレータの組み合わせ

次のBashスクリプトを使用して自動的に生成された純粋なNginxサーバーを持つUbuntu 16.04環境があります。サーバーブロックそして該当(自己署名)SSL認証

これにより、CLIのどこからでも次のようにこれらのエントリを作成できます。

csb domain.tld

自己署名証明書はサーフィンできません(this connection cannot be trustedエラーを含む)。

自己署名付きの証明書を生成する部分を一般的なCertBot自動化スクリプトにどのように置き換えることができますか?

ご希望の場合は、Githubでプロジェクトをフォークして起動してみてください。

答え1

dehydrated-apache2さて、コメントで約束したように、私はこれを処理する方法(dehydratedLet's EncryptスクリプトのDebian版)を調べてみましたが、実際にはとても簡単です。キーは単純なリダイレクトエイリアスです。

AliasMatch /.well-known/acme-challenge/(.*)$ /var/lib/dehydrated/acme-challenges/$1

この構成セクションはVirtualHostコンテキストの外部からロードされるため、優先順位があります。これを設定に変換するには、私が助けることができない2つのことを行う必要があります。

  1. あなたのcertbotバージョンがチャレンジトークンを保存する場所を学びます。/var/lib通常、検索を開始する安全な選択です。
  2. 設定ファイルを作成しnginx、エイリアスの一致を設定し、 `/.well-known-acme-challenge/ をそのディレクトリにグローバルにリンクします。潜在的なディレクトリナビゲーションの漏洩を防ぐために、完全正規表現を使用することをお勧めしますが、これはユーザー次第です。

完了したら、certbotSSL証明書の生成と更新を呼び出して証明書署名要求を生成し、チャレンジトークンを生成し、Let's Encryptサーバーにシグナルを送信します。その後、証明書に署名する前にトークンの確認を試みます。

ある時点で、おそらくあなたの立場になるでしょう。しかし、私の場合、私は数年前に書いた完全なPerlスクリプトを編集することになるので、私は「幸運を祈る」と言うときに笑うという意味ではありません。 ..

編集するまた、certbotが使用するディレクトリを含めるようにブロックテンプレートを変更する必要があります。これは、証明書をnginx SSLディレクトリにコピーするためにcertbotに実行後にフックを追加するよりも簡単です。

2番目の編集~によるとこの問題nginxそれに対応するコードはおおよそ次のようになります。

location /.well-known/acme-challenge/(.*)$ {
    alias /var/lib/dehydrated/acme-challenges/$1;
}

しかし、それを見つけてテストすることはあなたに任せます。

関連情報