Я пытаюсь сделать простой сервер, который слушает на порте и проходит проверку подлинности с ssl. У меня есть файлы
server.crt
server.key
my-ca.crt
полученный с openssl учебным руководством (http://www.vanemery.com/Linux/Apache/apache-SSL.html). my-ca.crt
мой собственный сертификат CA, server.crt
содержит x509 сертификат сервера (подписанный с мой-ca.crt) и server.key
соответствующий закрытый ключ.
Я теперь не знаю, как загрузить эти три файла в c#; у меня есть что-то как
serverCertificate = new X509Certificate2("server.crt", "secret_password");
sslStream.AuthenticateAsServer(serverCertificate, false, SslProtocols.Tls, true);
который не работает (я добираюсь
Unhandled Exception: System.NotSupportedException: The server mode SSL must use a certificate with the associated private key.
) но у меня нет подсказки, как добавить server.key
и/или my-ca.crt
.
Для использования X509Certificate2
в форме
serverCertificate = new X509Certificate2("server.pfx", "secret_password");
необходимо сохранить сертификат в формате PKCS12. See http://www.madboa.com/geek/openssl/#cert-pkcs12 and http://www.openssl.org/docs/apps/pkcs12.html