Проверьте сертификат SSL в C # - PullRequest
3 голосов
/ 14 марта 2012

Я загружаю файлы с сервера FTPS, и сервер отправляет мне сертификат обратно.

Microsoft заявляет:

Если пользовательская проверка не используется, имя сертификата сравнивается с именем хоста, использованным для создания запроса. Например, если Create (String) был передан параметр "https://www.contoso.com/default.hmtl",", по умолчанию клиент проверяет сертификат на www.contoso.com.

Сертификат не проходит проверку по умолчанию (RemoteCertificateNameMismatch). Прямо сейчас я использую делегат ServicePointManager.ServerCertificateValidationCallback и предоставляю делегат, который возвращает true, просто «для прохождения» без проверки. Как проверить сертификат с помощью C #?

Один из параметров рассмотренного выше delgate, сертификат X509Certificate, содержит два открытых свойства, представляющих интерес: Issuer и Subject. Ни одно из двух свойств не содержит данных, соответствующих имени хоста.

1 Ответ

0 голосов
/ 18 марта 2012

Обычно у вас должен быть действительный сертификат для правильного имени хоста, чтобы пройти проверку вместо перезаписи обратного вызова.Какой целевой адрес вы использовали для доступа к FTP-серверу?Это должно отличаться от предмета согласно вашему описанию.Вы можете использовать имя хоста субъекта для доступа к серверу вместо текущего.Вы также можете установить файл клиентского хоста, если у вас есть проблемы с DNS.

...