pfx ファイルから秘密キーを使用して証明書をロードし、それを LocalMachine/My (Personal) 証明書ストアにインポートしようとしています。私のコードは正常に動作しますが、ストアで証明書を表示すると、次のように表示されます
「関連付けられた秘密鍵が見つかりません」
さらに、certutil は言う
「復号化のための証明書と秘密鍵が見つかりません」
奇妙な点は、私のコードが Windows 7 開発ボックスでは正常に動作するが、Windows Server 2008 R2 または 2012 では正常に動作しないことです。また、mmc を使用して pfx ファイルを手動でインポートすると、秘密鍵が適切に保持されるように見えることも奇妙です。
ファイルをロードしてインポートするために使用しているコードは次のとおりです。
// load the certificate from pfx file
X509Certificate2 cert = new X509Certificate2(filePath, pfxPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
// import to the store
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite); //tried MaxAllowed as well
store.Add(caCert);
store.Close();
何か案は?背景情報として、前のステップで BouncyCastle を使用してコードで証明書を生成しています。そのステップで秘密鍵を永続化する際にいくつかの問題に遭遇しましたが、この質問からの回答で解決されました。また、インポートを試みているコードは管理者として実行されています。