X509Certificate2 SSL режима сервера должен использовать сертификат с соответствующим закрытым ключом

Я использую 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

person Mark Yuan    schedule 24.07.2015    source источник


Ответы (1)


person    schedule
comment
Спасибо, это работает нормально, хотя мне пришлось использовать новый X509Certificate2 (не X509Certificate) - person Drakarah; 02.10.2015
comment
Error: Unable to create file for the subject ('server.pvk'). В Windows есть пользовательский интерфейс для всего, они не могли сделать кнопку для этого за 1 секунду? - person The Muffin Man; 28.05.2017