В настоящее время наше приложение проверяет сертификаты сервера в неуправляемом коде с помощью openssl (http://www.openssl.org/docs/crypto/X509_verify_cert.html). Мы переходим к управляемому коду. У меня есть сертификат X509, который переводится в управляемую сторону, но как проверить этот сертификат на C#?Проверка сертификата x509 на Mono (доверенные корни OS X)
a) Есть ли простой способ проверить этот сертификат на наличие установленных доверенных корней?
b) Если нет, то каков процесс проверки вручную? Это где-то задокументировано?
Я изучил классы в Mono.Security.X509, который дает мне инструменты для работы с сертификатами и магазинами, но у меня возникают проблемы с подключением точек.
EDIT Я добавил свое окончательное решение ниже. Я хотел бы получить дальнейшую информацию об этом подходе.
Здесь есть достойное объяснение: http://stackoverflow.com/questions/7331666/c-sharp-how-can-i-validate-a-root-ca-cert-certificate-x509-chain. В принципе, используйте X509Chain, поместите все свои сертификаты внутри и создайте цепочку. У вас даже есть некоторые опции для отключения некоторых шагов проверки, если это необходимо. – mbarthelemy
Спасибо. Я добавляю свое окончательное решение в качестве ответа. – TheNextman