私は、Let's Encrypt を複数のドメインとサブドメイン、そして私の会社で使用したいと考えています。すべてのマシンにインストールされる長期のワイルド カード証明書を購入する代わりに、短命で特定の証明書を使用することを目標としています。これは、1 台のマシンが侵害された場合に、私たちのリスクを回避するためです。
残念ながら、一部のサーバーではサービスが中断されることはありません (つまり、HTTP アクメ チャレンジが実行できません)。そのため、最後のオプションは DNS チャレンジです。これには、DNS プロバイダー (この場合は Cloudflare) の API トークンが必要です。
ただし、グローバル API トークンをマシンに配置して侵害された場合、攻撃者はそのドメイン全体の DNS に完全にアクセスできるようになります。これはまさに、ワイルドカード証明書を使用しないことで軽減したい問題です。
Cloudflare では、権限の少ないトークンを作成できますが、ルート レベルのドメイン単位よりも細かい設定はできません。この場合も、アクセス/懸念事項はワイルドカード証明書と基本的に同じです。
この問題の解決策を思いついた人はいますか?
答え1
この要件に対して私が過去に採用したアプローチは、信じるLet's Encrypt のドキュメントで推奨されている方法は、_acme-challenge
検証する名前のサブドメインを、アクセス制御構成が異なる 1 つ以上の他のゾーン内の名前に CNAME することです。
たとえば、あるサービスが に対してのみ証明書を生成できるようにしたい場合はbobservice.example.com
、 などの他のドメイン用に別のゾーンを作成し、 に CNAME を設定します。bobservice.example
チャレンジトークンは の TXT レコードに配置され、CNAME の後に LE が続き、名前が検証されます。_acme-challenge.bobservice.com
_acme-challenge.bobservice.example
_acme-challenge.bobservice.example
もちろん、もう 1 つの選択肢は、Cloudflare の使用を完全に切り替えることです。なぜなら、Cloudflare のサービスには、限定された範囲の資格情報などの便利な機能が欠けているだけでなく、インターネットのゴミにサービスを提供しているというごく小さな問題もあるからです。
答え2
残念ながら、一部のサーバーではサービスが中断されることはありません (つまり、HTTP アクメ チャレンジが実行できません)。そのため、最後のオプションは DNS チャレンジです。
あなたのようなシナリオには別の選択肢があります。ウェブルートプラグインこれにより、Let's Encrypt クライアントにサーバーの Web ルートへのパスを伝えることができ、そこに HTTP チャレンジ ファイルを配置できます。このアプローチでは、Web サーバーにまったく影響がなく、ダウンタイムも発生しません。
答え3
私の解決策は、内部ネットワーク上に存在し、完全にロックダウンされ、グローバル API キーを保持するサービスを構築することです。このサービスは、このキーを使用して、さまざまなサブドメインの証明書を作成/更新します。サブドメイン証明書に依存するサーバーは、この内部サービスに対して発行できるドメインごとのトークンを持ち、新しい証明書または更新された証明書を取得できます。