証明書を更新すると、証明書の有効期限を更新する間、同じ公開キーと秘密キーを保持できます。これの利点は、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はそれをサポートしていない場合もあります)。
プロセス
上記の情報を保存したら(多くのことを知っています)。次の手順を実行します:
- コマンドプロンプトを開き、上記のinfを保存したディレクトリに移動します。
- 走る
certreq -new above.inf request.req
- request.reqファイルをCAに送信します。彼らはそれを処理し、承認/拒否します。
- 彼らがそれを承認するとき、彼らはあなたの.cerファイルであなたの公開鍵を送り返すべきです。
- 実行
certreq -accept file-from-ca.cer
してキーのセットアップを完了します。
幸運を!
編集
certreqとinfファイルの完全な構文は、付録3:Certreq.exeの構文(Windows Server 2003 SP1)にあります。FriendlyName
およびHashAlgorithm
Server 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