3

SslStream で使用する証明書を作成しています。XP では次のようにしています。

makecert -r -pe -n "CN=aName" -ss my -sr localmachine -sky exchange 
  -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 server.cer

これを正しく理解していれば、server.cer に証明書が作成され、個人証明書ストアに秘密鍵が作成されます。これが完了したら、次のような証明書オブジェクトを作成できます。

X509Certificate.CreateFromCertFile(certFile);

次に、それを SSLStream で使用すると、すべて正常に動作します。

Windows 7 に切り替えたので、マシンを再起動するたびに秘密キーが消えているようです。管理者としてコマンド プロンプトを実行し、上記と同じ makecert コマンドを実行します。これは成功し、SSL 接続は正しく機能します。マシンを再起動すると、AuthenticateAsServer の呼び出しが失敗し、「サーバー モードの SSL は、関連付けられた秘密キーを持つ証明書を使用する必要があります。」という例外が表示されます。

秘密鍵が消えるのはなぜですか? 定着させるにはどうすればいいですか?

4

1 に答える 1

1

あなたはすべての場合で同じユーザーですか?「管理者として実行」と言うときは、秘密鍵を別のユーザーに関連付けているか、秘密鍵ファイルに適切なアクセス許可がない可能性があります。アクセス許可の問題である場合、またはキーが消えているかどうかわからない場合は、FindPrivateKeyツールを使用してください:http://msdn.microsoft.com/en-us/library/ms732026.aspxServer2003 一部だと思いますツールですが、通常のXPでは正常に動作します。したがって、Windows7でも実行できることを願っています。私は今Win7マシンにいません。

于 2010-04-01T19:27:11.187 に答える