IIS 7.0-SSL証明書-更新または新規ですか?


13

SSL証明書の1つ(単純なドメイン検証のみ)がWindows 2003 IIS 7.0サーバーで期限切れになりそうです。

私は他のベンダーからより良いオファーを得ました、そして最初に私の証明書を発行した人はより低い価格を交渉したくありません。

とにかく-IISの証明書ウィザードで、「更新」または「アンインストール」して新しい証明書をインストールするオプションがあります。

だから-「更新」オプションを使用して証明書要求を作成し、これを新しいベンダーに渡すことができますか、または「新しい」要求で開始する必要がありますか?新しいベンダーにとって、以前の証明書が別の署名者によって発行されたことは重要ですか?

問題は、古い証明書を削除して新しいCSRを作成するためにサーバー(少なくともセキュリティで保護された部分)を停止し、新しい証明書がインストールされるのを待たないことです。

または、古い証明書を削除せずに新しいCSRを準備するオプションはありますか?

回答:


7

IIS 6.0で一時的なWebサイトを作成するだけです。IIS 7.0では、複数の保留中の要求を一度に作成できます。

IIS 7.0には、更新機能が非常に大きなキー(必要以上に大きい)を持つCSRを生成するバグが実際にあります。このため、更新オプションを選択する代わりに、新しい保留中の要求を作成することをお勧めします。インストールすると、WebサイトでSSLバインディングを切り替えるだけでダウンタイムが発生しなくなります。これにより、更新するたびに新しいキーを生成でき、セキュリティが向上します。

証明書プロバイダー(CA)は、新しいオプションを使用するか更新オプションを使用するかを気にしません。同じCAにとどまるか、新しいCAから注文するかにかかわらず、どちらのオプションも使用できます。


7

証明書を更新すると、証明書の有効期限を更新する間、同じ公開キーと秘密キーを保持できます。これの利点は、thumb印をルーターなどに保存する必要がある場合です。リクエストを更新するには同じ発行CAが必要なので、新しいリクエストを手動で生成する方が簡単かもしれません。

IISを爆破せずに新しいリクエストを生成するには

証明書リクエストを手動で作成して送信できます。新しい証明書を取得したら、IIS7が探している証明書を切り替えることができます。WebサーバーSSL証明書を手動で作成する方法

プロセスの簡単な要点は、必要な情報を含むinfファイルを作成して実行することcertreq -new file.inf file.reqです。リクエストファイルを取得したら、証明書を発行するCAにそれを送信し、コマンドで送信された公開キーを受け入れます。certreq -accept file-from-ca.req

request.infの例

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

上記の例のinfは、自分のCAで内部的に使用するものですが、ほとんどの環境で機能するように適合させることができます。Exportableキーをアーカイブできるようにする場合は、TRUEに設定できます。FriendlyName完全にオプションで、Extensionsセクションは代替DNS名(サブジェクトの別名)を使用するためのものです。

SANエントリの例は次のとおりです。

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

これにより、名前の不一致があると文句を言うことなく、上記の3つのサイトで同じ証明書を使用できます(最新のブラウザでは-IE6はそれを理解していないと思います)。SANをセットアップする場合は、完全修飾ドメイン名(件名のCN)をSANに含めることが重要です。複数のドメイン名が必要ない場合は、拡張領域も完全に削除できます(一部のCAはそれをサポートしていない場合もあります)。

プロセス

上記の情報を保存したら(多くのことを知っています)。次の手順を実行します:

  1. コマンドプロンプトを開き、上記のinfを保存したディレクトリに移動します。
  2. 走る certreq -new above.inf request.req
  3. request.reqファイルをCAに送信します。彼らはそれを処理し、承認/拒否します。
  4. 彼らがそれを承認するとき、彼らはあなたの.cerファイルであなたの公開鍵を送り返すべきです。
  5. 実行certreq -accept file-from-ca.cerしてキーのセットアップを完了します。

幸運を!

編集

certreqとinfファイルの完全な構文は、付録3:Certreq.exeの構文(Windows Server 2003 SP1)にあります。FriendlyNameおよびHashAlgorithmServer 2008の(およびR2)のみです。コマンドcertutil -csplistを実行して出力を見ると、サポートされている暗号化プロバイダーのリストを表示できます。現在のWindows 2003 SP2ボックスには、利用可能なプロバイダーとして「Microsoft RSA SChannel Cryptographic Provider」がリストされているため、ファイルに引用符が正しく設定されており、エントリが1行のみ(折り返しまたは複数行なし)であることを確認してください。

また、ProviderNameをProviderTypeに変更し、の出力で提供される番号を使用することもできますcertreq -csplist

この場合、次の出力が得られます。

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

だから私はどちらかを使用することができます

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

または

ProviderType = 12

ありがとう。手動で準備するにはどうすればよいですか?
サニー

また、まだ保留中の質問ですが、証明書が新しいベンダーによって発行される「更新」にとって重要ですか?
晴れ

私の知る限り、更新では同じ公開キーと秘密キーが保持されるため、更新には更新された証明書を送信するために同じ発行元CAが必要です。別のCAには、署名するための別のキーセットがあります。そのため、公開キーと秘密キーのペアは異なります。
ジョシュア

ジョシュア、これを報告します:証明書要求プロセッサ:データが無効です。0x8007000d(WIN32:13)mycert.inf(HashAlgorithm = "SHA256")。これは機能するはずですか?オリジナルで。リンクした記事には、そのような設定はありません。
サニー

HashAlgorithmとFriendlyNameの設定を削除しました(不平を言っていたため)。取得できません:証明書要求プロセッサ:プロバイダーの種類が登録された値と一致しません。0x8009001b(-2146893797)。残念な。
サニー

1

OK、既存の証明書を削除せずに(つまり、サーバーを停止せずに)新しい証明書を作成/使用する部分である自分の質問に部分的に答えるには、Comodo Webサイトで良い説明を見つけました-基本的に「一時的な」Webサイトを作成する必要がありますサーバーで、それを使用して新しいCSRを作成し、署名用に送信して、証明書を受信およびインポートします。

次に、メイン(実際の)サイトで、現在の証明書を置き換えてから、一時証明書を削除する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.