Назад | Перейти на главную страницу

Предупреждение OpenSSL при использовании целевой команды x509

Сегодня я попытался найти свой корневой ЦС и просмотрел все свои сертификаты, используя openssl x509 -in /path/to/certificate -purpose.

Когда я обнаружил, каким должен быть мой корневой ЦС, я получил следующий результат:

Certificate purposes:
SSL client : Yes
SSL client CA : Yes (WARNING code=3)
SSL server : Yes
SSL server CA : Yes (WARNING code=3)
Netscape SSL server : Yes
Netscape SSL server CA : Yes (WARNING code=3)
S/MIME signing : Yes
S/MIME signing CA : Yes (WARNING code=3)
S/MIME encryption : Yes
S/MIME encryption CA : Yes (WARNING code=3)
CRL signing : Yes
CRL signing CA : Yes (WARNING code=3)
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : Yes (WARNING code=3)
Time Stamp signing : No
Time Stamp signing CA : Yes (WARNING code=3)

Кажется, что некоторые части linux или его инструментов не так хорошо документированы, как можно было подумать. Он не смог найти ответа на этот вопрос, даже этот сайт не смог ответить на него три года назад (ПРЕДУПРЕЖДЕНИЯ OpenSSL при использовании команды -purpose).

Я надеюсь, что времена изменились, и кто-то здесь теперь может ответить на вопрос, что это WARNING code=3 это все о. Возможно также предоставление списка всех возможных предупреждающих сообщений и их причин, если они есть.

Это ваш собственный корневой центр сертификации с собственной подписью или более старый корневой центр сертификации Verisign V1 или аналогичный? Потому что это вызовет предупреждение. Из руководство (акцент моя)

Флаг CA расширения basicConstraints используется для определения, можно ли использовать сертификат в качестве CA. Если флаг CA имеет значение true, то это CA, если флаг CA false, это не CA. Для всех центров сертификации флаг CA должен быть установлен в значение true.

Если расширение basicConstraints отсутствует, тогда сертификат считается «возможным CA», другие расширения проверяются в соответствии с предполагаемым использованием сертификата. В этом случае выдается предупреждение потому что сертификат на самом деле не следует рассматривать как ЦС: однако разрешено быть ЦС для работы с некорректным программным обеспечением.

Если сертификат является сертификатом V1 (и, следовательно, не имеет расширений) и самоподписан, он также считается ЦС, но предупреждение снова дано: это позволяет обойти проблему корней Verisign, которые являются самозаверяющими сертификатами V1.

В code=3 может быть связано с тем, что X509 v3 расширения отсутствуют. По крайней мере, это то, что подсказывает быстрое сканирование кода: ./crypto/x509v3/v3_purp.c:

/*-
 * CA checks common to all purposes
 * return codes:
 * 0 not a CA
 * 1 is a CA
 * 2 basicConstraints absent so "maybe" a CA
 * 3 basicConstraints absent but self signed V1.
 * 4 basicConstraints absent but keyUsage present and keyCertSign asserted.
 */

Скачивая пару старые корневые сертификаты VeriSign complete воспроизводит ваши предупреждения:

wget https://www.symantec.com/content/en/us/enterprise/verisign/roots/Class-3-Public-Primary-Certification-Authority-G2.pem 
openssl x509 -purpose -in Class-3-Public-Primary-Certification-Authority-G2.pem
Certificate purposes:
SSL client : Yes
SSL client CA : Yes (WARNING code=3)
SSL server : Yes
SSL server CA : Yes (WARNING code=3)
Netscape SSL server : Yes
Netscape SSL server CA : Yes (WARNING code=3)
S/MIME signing : Yes
S/MIME signing CA : Yes (WARNING code=3)
S/MIME encryption : Yes
S/MIME encryption CA : Yes (WARNING code=3)
CRL signing : Yes
CRL signing CA : Yes (WARNING code=3)
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : Yes (WARNING code=3)
-----BEGIN CERTIFICATE-----
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
oJ2daZH9
-----END CERTIFICATE-----