SslStream を使用して Web サーバーを構築します。ただし、以下のコードは、AuthenticateAsServer のときに例外をスローします。
static X509Certificate cert;
protected virtual Stream GetStream(TcpClient client)
{
var ss = new SslStream(client.GetStream(), false);
if (cert == null)
{
cert = X509Certificate2.CreateFromCertFile("test.cer");
}
ss.AuthenticateAsServer(cert, false, System.Security.Authentication.SslProtocols.Tls, true);
return ss;
}
既に X509Certificate2 を使用して証明書ファイルをロードしましたが、それでも例外がスローされるのはなぜですか (サーバー モード SSL は、関連付けられた秘密鍵を持つ証明書を使用する必要があります)。
証明書ファイルは、次のコマンドを使用して作成されました。
makecert
-pe Exportable private key
-n "CN=localhost" Subject name
-ss my Certificate store name
-sr LocalMachine Certificate store location
-a sha1 Signature algorithm
-sky signature Subject key type is for signature purposes
-r Make a self-signed cert
"test.cer" Output filename