В настоящее время у меня возникла проблема с некоторыми программно самозаверяющими сертификатами, к которым я добавил точки распространения. По сути, ключевая проблема заключается в том, что по какой-то причине сертификаты, которые я создал программно с помощью Bouncy Castle, не могут получить доступ к CRL, указанному в сертификате. См. ниже пример вывода certutil;
Я рвал на себе волосы относительно того, почему возникает эта проблема, и поэтому, чтобы, по крайней мере, исключить сгенерированные сертификаты как проблему, я затем пошел и создал аналогичную структуру сертификата, используя открытый ssl. К моему ужасу, клиентский сертификат в этом случае смог без проблем подключиться к указанному CRL.
Я могу включить код, который я использую для создания сертификатов Root и Client, если это поможет, а также могу предоставить дополнительные выходные данные certutil, если это поможет отследить проблему.
Большое спасибо,
>CertContext[0][0]: dwInfoStatus=101 dwErrorStatus=1000040
Issuer: CN=MyNewCA
NotBefore: 1/17/2016 3:10 AM
NotAfter: 1/17/2018 3:10 AM
Subject: CN=Test.User
Serial: 855daec11dd981ae87c379dadd323b
2adc3620f29e8347ec7f007bee3b05a98a3ed49a
Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1)
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
Element.dwErrorStatus = CERT_TRUST_REVOCATION_STATUS_UNKNOWN (0x40)
Element.dwErrorStatus = CERT_TRUST_IS_OFFLINE_REVOCATION (0x1000000)
Certificate AIA
No URLs "None" Time: 0
Certificate CDP
Wrong Issuer "Base CRL (01)" Time: 0
[0.0] http://localhost/MyURL/RootRevocation2.crl
>Certificate OCSP
No URLs "None" Time: 0
Application[0] = 1.3.6.1.5.5.7.3.2 Client Authentication
>CertContext[0][1]: dwInfoStatus=109 dwErrorStatus=0
Issuer: CN=MyNewCA
NotBefore: 1/17/2016 3:10 AM
NotAfter: 1/17/2026 3:10 AM
Subject: CN=MyNewCA
Serial: e4fcfcad23d16adef6f06bcacc5041
9e500eac5e7a8b5545c92c8a27f1a96a0d223384
Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1)
Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
РЕДАКТИРОВАТЬ: после комментария CryptoGuys я решил немного углубиться в мой код генерации сертификата, чтобы убедиться, что подпись работает должным образом, и я действительно обнаружил проблему с кодом. Для тех, кто хочет выполнить аналогичную задачу - вот ссылка на сообщение, на котором я основывал свое создание CRL Bouncy Castle, и это помогло мне исправить логический недостаток, который у меня был; Создать файл CRL с помощью Bouncy Castle c# Справка Bouncy Castle CRL файл находится здесь; http://www.bouncycastle.org/wiki/display/JA1/X.509+Certificate+Revocation+Lists
Спасибо за помощь