web-dev-qa-db-ja.com

イントラネットWebサイト用に暗号化しましょう。

多くの企業は、インターネット経由で到達できないイントラネットWebサイトを持っています。通常、彼らは自己署名証明書を使用するだけであり、無効なCERT警告で単にOKを押すことに慣れているため、ユーザーに悪い癖を与えます。

質問:Let's Encryptを使用して、HTTPS Webサイトの証明書をどのように生成できますか? LTS WebブラウザーにはLet's Encrypt as CAがありますか?

My-company-private-intranet-site.comなどのプライベートドメイン名が漏洩する可能性があるのはプライバシーの問題ではないですか。

106

Let's Encryptは、有効なDNS名に対してのみ証明書を発行できます。したがって、イントラネットがintranet.mycompany.localのような作成されたドメイン名を使用している場合、機能しません。

intranet.mycompany.comのような実際のDNS名がある場合(イントラネットの外部で解決されない場合でも)、Let's Encryptを使用して証明書を発行できます。ドメインを実行して、ポート80で応答できるサーバーに外部的に解決する場合( 分割がある場合、イントラネットの一部である必要はありません) -horizo​​n DNS )、 http-01 チャレンジを使用できます。

または、 dns-01 チャレンジ( Certbot 0.10.0 以降で完全にサポートされているほか、 dehydratedgetssl などの他のクライアントも使用できます。 acme.sh )。この課題はDNS TXTレコードをプロビジョニングすることで機能するため、パブリックIPアドレスでAレコードをポイントする必要はありません。

そのため、イントラネットはインターネットから到達可能である必要はありませんが、ドメイン名は管理下のパブリックDNSに存在する必要があります。

暗号化しましょう- Chromeの要件により、一般に公的に信頼されている認証局 -発行されたすべての証明書を公開証明書の透明性ログに送信します。そのため、イントラネット(サブ)ドメイン名の証明書を取得した場合、そのドメイン名が秘密のままであると期待すべきではありません。イントラネットのセキュリティは、ドメイン名を秘密にしておくことに依存すべきではありません。

107
John Morahan

イントラネット用の内部CAのようなサービスを探している場合、Lets EncryptのようなパブリックCAは、サーバーに接続して証明書の要求と署名を管理する必要があるため、機能しない可能性があります。これは、イントラネットWebサーバーからインターネットにアクセスできないことを前提としています。 Lets Encryptサービスと通信するには、クライアントをWebサーバーにインストールする必要があります。

Let's Encryptを使用して、HTTPS WebサイトのCERTをどのように生成できますか?

LEには、この目的のための専用クライアントがあります。 仕組みを参照

LTS WebブラウザーにはLet's Encrypt as CAがありますか?

ブラウザ対応のCAルート証明書のサポートは制限されています。 https://github.com/letsencrypt/letsencrypt#disclaimer を参照してください。 https://letsencrypt.org/certificates/ のサイトに公開証明書があります

要点に戻りましょう。これは、警告を生成しない、ブラウザが受け入れるSSL証明書の発行です。 RoraZが示唆するように、ユーザーに会社の自己署名証明書をインポートして、繰り返し発生するブラウザー警告を排除し、ユーザーが無効な証明書を単に受け入れる習慣を身につけないようにする必要があります。

OpenSSLを使用して独自の認証局として機能できるようにし、すべてのユーザーがインポートする必要があるルートCAを生成します。これにより、すべての従業員のブラウザーまたはSSLに依存するサービスによって自動的に受け入れられる追加の証明書を生成できます。これは、必要に応じて自己署名証明書を単にインポートするのと異なるです。 ルートCA証明書を実際に作成してインポートしています。今後は、このCAによって署名されたさまざまな共通名に対して任意の数の証明書を発行できます。これらの証明書は有効であり、独自のプライベートルート認証局を介して信頼されます。

独自の認証局の作成と管理については、 http://www.flatmtn.com/article/setting-openssl-create-certificates を参照してください。

32
Rodrigo M

UPDATE 2019-03-30:誰かが実際に内部サーバーに対してLEを実行する大規模な方法を見つけました: https://blog.heckel.xyz/2018/08/05/issuing-lets-encrypt-certificates-for -65000-internal-servers /

——————-

Let's Encryptを使用して、HTTPS WebサイトのCERTをどのように生成できますか?

どういたしまして。これは 公的に到達可能なサイトのみ です。

更新2016-04-22:たぶん「まったくない」は少し難しいです。詳細は次のとおりです。LEは公的に到達可能なサイトに合わせて調整されています。LEが要求するときにDNS名に応答するサーバーが必要です。実際に質問をしている人に応じて異なる応答をするようにDNSサーバーを構成した場合- -内部または外部から別名スプリットブレインDNSの誰か-次に、検証要求を任意のホストにリダイレクトできます-しかし、これはLEが実際に役立つユースケースではありません。 :2015年には、次の明示的な意図がありました: "検証元のIPのセットを頻繁に変更する予定です" -だからかなりこれらのIPは頻繁に変更される可能性があるため、ファイアウォール上のLE-validation-hostsのIPをホワイトリストに登録するだけでは不可能です。

LTS WebブラウザーにはLet's Encrypt as CAがありますか?

はい。彼らのCAは、よく知られた確立されたCAによって相互署名されています。 (つまり byIdenTrust です。)したがって、その古いCAを信頼するすべてのクライアントは、新しいLet's-Encrypt CAもすぐに信頼します。

13
StackzOfZtuff

適切な解決策として、ネットワーク上で独自の boulder インスタンス、つまり、letsencryptサーバー部分を実行できます。次に、異なるACME URLの使用をサポートしている場合は、独自のACMEサーバーですべての公式および非公式のクライアントを使用できます(公式のものは、他のものについては、ドキュメントまたはソースコードで調べる必要があります)。

次に、サーバーを使用するクライアントのトラストストアにCA証明書をインポートする必要があります。

少数のサーバーでboulderを実行していて「letsencrypt」を自分で実行している場合は、おそらく最善の選択ではなく、 easy rsa のようなより単純なツールを使用できます。

2
allo

パブリック認証局に内部名を付けることを提案している人は、パブリック証明書の透過ログを見て、これが内部システム名に関する情報をインターネットに漏らすことを理解する必要があります

https://blog.appsecco.com/certificate-transparency-part-3-the-dark-side-9d401809b025https://www.ssl.com/faqs/questions- about-certificate-transparency /

可能な解決策を読むことをお勧めします。最善の解決策は、組織に独自の公開キー基盤(PKI)を実装することです。これにより、内部CAがパブリックCAによって管理されているCTログにリストされないようにします。

潜在的な攻撃者が名前を開示しないことにより、あなたがより困難になったことを発見しなければならないことは、まさにもう1つのことです。

0
Adam Walker

実際のドメインを所有していて、localhostや内部ネットワークIPなどのドメインにドメインを必要としない限り、空のシステムをポイントするパブリックインターネット上でドメインを生成し、rsyncなどを使用してイントラネットに転送できます。

どうやら今でもワイルドカードを取得できるので、*.internal.yoursite.extensionは機能する可能性があります。 Microsoft.comのようななりすましサイトには明らかに役に立たない。

サイトのなりすましが望ましくない理由は理解できますが、組織内のすべてのワークステーションにCAをインストールする必要がないことの有用性も理解できます。

0
MrMesees