Проверьте самозаверяющий сертификат (SSL, C #) - PullRequest
0 голосов
/ 20 сентября 2011

В моем настольном приложении я использую соединение HTTPS. Сертификат САМО подписан. Как я могу проверить самоподписанный сертификат в c # программно?

я делаю обратный вызов «ValidateRemoteCertificate»:

 ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate)

По умолчанию мой метод ValidateRemoteCertificate всегда возвращает TRUE. Но я думаю, что мне нужно проверить действительный или недействительный этот сертификат. Как это проверить? Что я должен проверить в "ValidateRemoteCertificate"?

1 Ответ

0 голосов
/ 20 сентября 2011

Поскольку вы уже реализовали обратный вызов, вы знаете подпись делегата обратного вызова

public delegate bool RemoteCertificateValidationCallback(
    Object sender,
    X509Certificate certificate,
    X509Chain chain,
    SslPolicyErrors sslPolicyErrors)

Если я правильно вас понял, у клиента не установлен сертификат в его магазине, правильно? Хотя я бы порекомендовал привести вашу инфраструктуру в порядок и развернуть действующий сертификат, в вашем случае вы можете сравнить хэш / отпечаток пальца для сертификата со значениями, хранящимися в вашем приложении, чтобы проверить действительность сертификата.

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