WindowsServer2008でIISにSSL証明書をインストールを行う際、
「CertEnrool::CX509Enrollment::P_InstallResponse:ASN1のタグ値が間違ってます。0x8009310b(ASN:267)」
このようなエラーが発生したので対応メモ。
このエラーが起きる原因については様々なことが挙げられるけど、私が遭遇したケースだと
持っている秘密鍵と異なる証明書をインストールしてしまい、その後不正な証明書を削除し、再度証明書をインストールしたため、秘密鍵がWindowsサーバーにキャッシュされた為に問題が発生しました。
このようなケースに当てはまる場合、以下の手順で解決できます。
1.コンソールから証明書の状態を確認
ファイル名を指定して実行で「mmc」と入力するとコンソールが開きます。
スナップインの追加と削除で証明書を追加し、証明書がどのような状態になっているか確認します。
通常だと、「証明書(ローカルコンピューター)個人証明書」パスにサーバー証明書があるけど、削除した場合はここにはありません。
個人フォルダを右クリックし「インポート」を選択してウィザードからインポートしてください。(配置先は個人で構いません)
無事にインポートされますが、このままでは秘密鍵の認証がされていません。(認証されると証明書に鍵マークが付きます)
2.秘密鍵の関連付けを修復
コマンドラインから以下のコマンドを入力する事で秘密鍵の関連付け修復されます。
certutil -repairstore "00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f"
※"00 01 ~ 0e 0f"の部分は認証したい証明書の拇印を入力してください
上記のコマンドを実行後、コンソールを確認すると、証明書に鍵マークが付いていることが確認できるはずです。
中間CA証明書は、サーバー(OS)を再起動しないと反映されないという現象がちらほらあるようでした。
今回はサーバーを再起動しなくてもOKでした。
私のケースでは秘密鍵のキャッシュが悪さしてたみたいですが、証明書と秘密鍵が一致しない場合もこのエラーが発生するようです。。
その際は証明書の再発行を行ない、新しい証明書をインストールすることで解決します。