2012-03-14 5 views
3

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

состояния Microsoft:

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

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

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

+0

Имя хоста может также содержаться в расширении имени альтернативного имени объекта. –

ответ

0

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

Смежные вопросы