2009-03-15 14 views
0

私のテスト環境で自己署名証明書を発行しています。私がしていることの詳細はこちらです。自己署名証明書発行

http://www.hanselman.com/blog/SigningPowerShellScripts.aspx

私の簡単な手順はmakecert.exeを使用して、コンピュータのAルートCAを作る、(目的は、証明書に基づいたコンピュータCとコンピュータAとの間に信頼関係接続を確立することである)です

  1. 自己署名証明書Bは、ルートCAとしてコンピュータAによって発行されます。
  2. 通信に使用する証明書としてコンピュータAに証明書Bをインストールします。
  3. ルートCA(コンパイラA)をコンピュータCにインストール/信頼します。
  4. は、次にコンピュータCは、証明書B.
  5. を用いて、コンピュータAの通信を信頼する

私の混乱があり、コンピュータのC信託のコンピュータAの証明書Bをインストールせずに?ルートCAの証明書と相手の証明書の両方をインストールする必要があると思います。コメントやアイデアは?事前に

おかげで、 ジョージ

答えて

1

コンピュータCは、(コンピュータA上)のルートCAを信頼する必要があります。同じルートCAによって発行された別のコンピュータ(たとえば、コンピュータD)から提示された証明書は、自動的に信頼されます。

たとえば、Windowsでは、デフォルトでVerisignのルートCA証明書が既に所有され、信頼されています。 Verisign証明書を使用するHTTPSサイトに移動すると、Verisignを信頼し、証明書をHTTPSサイトに発行したため、自動的に証明書が信頼されます。

IOW - CAを信頼し、証明書をインストールするだけです。

+0

おかげで、マークは、インストールルートCAの証明書は、ルートCAによって発行された出版社や個人の証明書をインストールする必要罰金ではありません? – George2

+0

修正。ルートCAの証明書をマシンにインストールすることで、そのCAが発行したものを*信頼するようにマシンに指示します。 –

2

手順2は、少なくとも意味的に間違っています。 CAによって署名された証明書を生成している場合、自己署名されていない証明書はCAによって署名されています。

マシンCでは、生成されたCA証明書を信頼できるCAストアに置くだけで済みます。これを行うことで、あなたが署名したものをあなたのケース証明書Bに信じていると言います。

あなたはこれを通信に使用していますが、あなたが失効を確認するWCF生成されたCAがこれをサポートしないため、これをオフにする必要があります。

+0

ありがとうございました。「あなたは手順2が間違っていますが、少なくとも意味があります。CAによって署名された証明書を生成する場合は、自己署名されていない証明書がCAによって署名されています。 - それは私の悪いです、私は自己確立したCAによって署名されたことを意味します。 :-) – George2

+0

ありがとうございました。あなたのソリューションでは、マシンCの信頼できるパブリッシャにBの証明書をインストールするだけでいいかどうかを確認したいのですか?はいの場合は、証明書BがルートCAコンピュータAによって発行されているため、私は同意しません。これは、デフォルトでコンピュータBによって信頼されていません。 – George2

+0

(続き)ので、私は信頼のチェーン全体をインストールする必要があります - ルートCAの証明書(私のサンプルでは、​​マシンAのルートCA証明書)をマシンBの信頼できるルート認証局にインストールしてください。コメントはありますか? – George2

1

コンピュータAは、実際には「ルートCA」にはなりません。ルート証明書を作成し、それをターゲットコンピュータにインストールする必要があります。

異なるアプリケーションが異なる証明書ストアを使用する可能性があるため、ルート証明書をターゲットコンピュータにインストールするのは簡単ではありません。たとえば、FirefoxとExplorerの両方にルート証明書をインストールする必要があります。

ルート証明書で署名された "子"証明書を作成することができます。また、信頼されたルート証明書によって署名されているため、ターゲットシステムはその子証明書を有効として受け入れます。

証明書は、他人の公開鍵を検証する単なる方法です。証明書には、プレーンテキストの公開鍵と、署名者の秘密鍵で暗号化された公開鍵の両方が含まれています。証明書に公開されている公開鍵を検証するには、署名者の公開鍵を使用して公開鍵の暗号化されたバージョンを復号化し、公開鍵のプレーンテキスト版と同じであることを確認します。

自己署名証明書では、自分の秘密鍵で公開鍵を暗号化します。したがって、自己署名証明書はルート証明書でもあります。これは、チェーンに上位の署名機関がないためです。

中間証明書を使用して他の証明書に署名することもできます。このようにして、証明書を使用して、信頼できるルート証明書の一部を(少なくとも論理的に)信頼のチェーンにすることができます。

Bruce Schneierは、彼の著書「Applied Cryptography」でこれについて合理的な説明をしています。そして、ピーター・ガットマンは、このLinkyはで証明書のより多くのカラフルな記述があります。

http://www.cs.auckland.ac.nz/~pgut001/pubs/pkitutorial.pdf

+0

ありがとうございましたbillmcc、あなたが言及した証明書ストアの問題に興味があります。私の知る限り、Windowsはトップ2のカテゴリ(currentuserまたはlocalmachine)で証明書を管理し、2つのカテゴリの下にはサブ名付きストアがあります。あれは正しいですか?はいの場合、ローカルに指定されたすべての店舗を表示するツールはありますか? – George2

+0

"し、ターゲットコンピュータにインストールします。 - 私のサンプル、コンピュータAまたはコンピュータCを意味するターゲットコンピュータ? – George2

+0

あなたの例では、対象のコンピュータはコンピュータCです。 – billmcc

関連する問題