Я использую SslStream для создания веб-сервера. Однако приведенный ниже код создает исключение, когда 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