web-dev-qa-db-ja.com

ルートCAとしてインストールせずに、システム全体で自己署名証明書を受け入れる

イントラネットサーバーには、システム全体で信頼したい自己署名証明書を使用します。 Firefoxに証明書の例外を追加しましたが、これはChrome、コンソールアプリケーション、IDEなどでは不可能です。

これが、証明書がシステム全体で信頼されるようにしたい理由です。私が理解したように、推奨される方法はルートCAとしてインストールすることです: https://blogs.technet.Microsoft.com/sbs/2008/05/08/installing-a-self-signed-certificate- as-a-trusted-root-ca-in-windows-Vista /

私も理解したように、これは、自己署名証明書を制御する人は誰でも、私のマシン上のanyサイトの偽造証明書に署名できるルート機関を制御することを意味します。これは本当ですか?はいの場合、どうすればこれを防ぐことができますか?使用するすべてのサービスではなく、単一のイントラネットサーバーに自己署名を付けたいだけです。

ここでイントラネットTLSを処理するための推奨される方法は何ですか?

2
PhilLab

サーバーが管理下にある場合:

  1. 実際のルートCAを作成します(たとえば、easy-rsa、Xca、またはWindows Server CAの役割を使用します)。
  2. 自己署名サーバー証明書を、カスタムCAによって発行された証明書に置き換えます。
  3. 発行した証明書が実際に「リーフ」/「エンドエンティティ」証明書としてマークされていることを確認してください。 「X.509v3BasicConstraints」拡張機能を探します。これが存在し、「CA:FALSE」と表示されている必要があります。
  4. カスタムCAのルート証明書をコンピューターにインストールします。
  5. CA秘密鍵を安全に保管して、新しい証明書を発行する必要があるときにのみアクセスできるようにします。

サーバーの証明書には「基本的な制約:CA:FALSE」が含まれているため、サーバーは独自のキーだけを使用して新しい証明書を発行することはできません。

(CAを分離する必要がある理由は、サーバーの自己署名証明書を「信頼できるCA」フォルダーに直接インストールすると、システムが基本的な制約を無視する可能性があるためです。結局のところ、認証局としてインストールされます。分離により、この問題が回避されます。ルートCAキーを保護できるためです。)

ボーナス機能として、有効期限が切れたときや名前が変更されたときにサーバー証明書を再信頼する必要はありません。同じルートCAを使用して新しい証明書を発行するだけです。

3
user1686