web-dev-qa-db-ja.com

Windows Server 2008R2でIIS 7.5を介してCSRを生成すると、常に新しい秘密鍵が作成されますか?

Windows 2008 R2サーバーのCSRを生成し、CSRに使用される秘密鍵が新しいことを確認する必要があります。

以前にOpenSSLを使用して、テスト用の独自の自己署名証明書を作成しました。正しく覚えていれば、使用する秘密鍵を指定できました。

IISサーバー証明書では、秘密鍵の生成や選択を求められることはありません。

では、WindowsベースのサーバーでCSRを生成すると、常に新しい秘密鍵が作成されますか?そうでない場合、新しい秘密鍵が作成/使用されていることを確認するにはどうすればよいですか?

11
jzimmerman2011

はい

「証明書要求の作成」Wizardは、新しいキーペアを自動的に生成します。

IISサーバー証明書では、秘密鍵の生成や選択を求められることはありません。

これは実際には真実ではありません-ウィザードはそれについてあまり明白ではありません。

ID情報(一般名、地域、組織など)を入力して[次へ]をクリックすると、2番目の画面で2つのことを尋ねられます。

  1. 暗号化サービスプロバイダー(CSP)
  2. ビット長

enter image description here

デフォルトのCSP(Microsoft RSA SChannel CSP)とビット長2048を選択すると、Windowsは次のようになります。

openssl req -new -newkey rsa:2048

署名リクエストの構造

CSR自体は、次の3つの「部分」があると考えることができます。

  1. クリアテキストのID情報(CN、地域、組織など)
    • これは単なる文字列であり、署名者(CA)はそれらを自由に変更できます
  2. 公開鍵
    • サーバーに対応する秘密鍵が必要です
  3. オプションの拡張フィールド
    • それでもクリアテキスト情報

発行者は署名リクエストの情報を確認し、(1)と(3)の両方の内容を変更する場合があります。
次に、発行者はCA秘密鍵を使用して、要求者の公開鍵(2)を暗号化します。

最終的な証明書が発行されると、次の内容が含まれます。

  1. クリアテキストのID情報(CN、地域、組織など)
    • 発行者情報が追加されました
  2. 公開鍵
    • まだ上記と同じ
  3. オプションの拡張フィールド
    • 今多分発行者拡張フィールドで
  4. 署名ブロブ
    • これは、CAの秘密鍵で署名された公開鍵です。

これで、次にクライアントが証明書を提示したときに、発行者CAの公開鍵を使用して署名BLOB(4)を復号化し、証明書の公開鍵

8