Настройка сокета ssl-сервера с подписанным сертификатом - PullRequest
5 голосов
/ 12 июля 2010

Я пытаюсь создать простой сервер, который прослушивает порт и аутентифицируется с помощью 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 (подписанный my-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.

1 Ответ

3 голосов
/ 12 июля 2010

Для использования X509Certificate2 в форме

serverCertificate = new X509Certificate2("server.pfx", "secret_password");

Вы должны сохранить сертификат в формате PKCS12. См http://www.madboa.com/geek/openssl/#cert-pkcs12 и http://www.openssl.org/docs/apps/pkcs12.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...