SslStream AuthenticateAsClient с использованием файла PFX
Я пытаюсь подключиться к серверу, используя SslStream. Мне дали файл PFX от владельца сервера, и я установил его на своем клиенте, но я не уверен, как получить доступ к сертификату из моего кода.
В частности, представьте, что у меня есть следующий код...
var serverName = "?";
var stream = new SslStream();
stream.AuthenticateAsClient(serverName);
Каким будет значение serverName? я пробовал
IP-адрес сервера
"MyServer"
"CN = MyServer"
Кажется, ни одно из этих значений не работает. Есть ли что-то дополнительное, что мне нужно сделать, чтобы получить доступ к хранилищу сертификатов на моем компьютере, или я не понимаю, каким должно быть имя сервера?
1 ответ
Это должно быть общее имя (CN - обычно это полное доменное имя) сертификатов серверов для хоста, к которому вы подключаетесь.
Например, если тема сертификата сервера выглядит так:
CN = www.verisign.com, OU = Production Security Services, O = VeriSign, Inc ...
вы должны использовать:
stream.AuthenticateAsClient("www.verisign.com");
Если хост, к которому вы подключаетесь, разрешает подключения без проверки сертификата клиента, вы должны иметь возможность подключиться к нему (например, с помощью браузера - если HTTPS) и посмотреть сертификат сервера, или вы можете попробовать использовать клиент OpenSSL.