IIS6.0 で SSL に証明書を使用するために、Windows マイ ストアに証明書を展開しようとしています。アプリケーションの実行中は、SSLDiag の出力にエラーは表示されず、すべてが完全に機能しますが、アプリケーションを閉じると SSLDiag にエラーが表示されます。
#WARNING: You have a private key that corresponds to this certificate
but CryptAcquireCertificatePrivateKey failed
マシンのキーセットを確認したところ、アプリケーションを閉じると、作成されたキーを含むファイルが削除されることに気付きました。ここに私がチェックした場所があります:
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
作成キー ファイルをマシン キーセットに保存するにはどうすればよいですか?
私が使用しているコードは次のとおりです。
using(var openFileDialog = new OpenFileDialog())
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
var password = "password";
var certificate = new X509Certificate2(openFileDialog.FileName, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
var keystore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
keystore.Open(OpenFlags.MaxAllowed);
keystore.Add(certificate);
keystore.Close();
}
}
X509KeyStorageFlags のさまざまなバリエーションを試しましたが、アプリを閉じると、ファイルはマシンのキーセットから削除されたままです。ファイルが削除される理由と、それを防ぐ方法を教えてください。