web-dev-qa-db-ja.com

内部マイクロサービスの保護-Letsencryptと自己署名証明書の比較-ベストプラクティス

検証済みのCAからの証明書を内部マイクロサービスに通常使用するのか、それとも自己署名証明書を使用するだけなのか疑問に思います。このための典型的な安全なセットアップは何か疑問に思っています。検証済みのCA証明書の購入は多すぎるように見えますが、よくわかりません。ありがとうございました。

2
Lance Pollard

サービスは外部から到達できないため、公的認証局は通常、内部サービスでは機能しません。したがって、証明書が正しいエンティティに発行されていることを確認する方法はありません。たとえば、Let's Encryptにbackend0001.myapp.myinternaldomainのサーバー証明書を要求した場合、Let's Encryptはそのホスト名からのリクエストケースを確認できる必要があります。内部サービスの場合、これは通常、外部の世界から到達できません。

証明機関:代わりに、組織全体のCAを実際のCAと同じ妄想で管理する必要があります(CAへのアクセスを完全に制御する必要があります)キーを使用して、正しいエンティティにのみ証明書を発行するようにします)。

CA証明書:証明書チェーンを検証できるようにするには、すべてのサーバーとクライアントがCA証明書を使用できる必要があります。

サーバーとクライアントの証明書:サーバーとクライアントの証明書は、ホスト名またはクライアントIDの確認後にアプリとクライアントに発行できます。証明書キーの展開は非常に注意する必要があります。 keywhiz または vault (いくつかの例にすぎませんが、他にも多数あります)のようなものを使用して、正しいホストにのみ証明書キーをデプロイできます。

最大の複雑さは、鍵が適切な関係者のみが利用できるようにすることです。その部分を正しくすることは、より多くのプロセス設定であり、技術的な側面についてのことではありません。しかし、再び、同じ問題がパブリックCAにも存在します(CAキーの問題は差し引かれます)。

4
Marc