Перейти к содержимому
ecdsa.com
OpenSSL 3.x CLI (openssl s_client / openssl verify)OpenSSL CLI

Сообщение об ошибке

verify error:num=79:invalid CA certificate

Также выводится как

  • error 79 at 1 depth lookup: invalid CA certificate

И OpenSSL 3.0.13, и 3.5.7 выдают в этом случае ошибку 79 (в старых справочниках «invalid CA certificate» значится как ошибка 24; она по-прежнему существует для других проверок CA). Для того же сертификата s_client выводит ещё и ошибку 26, «unsuitable certificate purpose», и в итоговой строке показывает именно этот последний код.

OpenSSL 3.x CLI (openssl s_client / openssl verify) — X509_V_ERR_INVALID_CA

Что это означает

Ошибка OpenSSL 79 (X509_V_ERR_INVALID_CA): сертификат, который стоит в цепочке на месте издателя, не годится в качестве сертификата CA — в его basicConstraints указано CA:FALSE или этого расширения нет вовсе, либо его keyUsage не разрешает подписывать сертификаты. Глубина в сообщении openssl verify указывает на проблемный сертификат (1 — первый промежуточный).

Почему это происходит

Как исправить

  1. 1.

    Проверьте сертификат на указанной глубине

    basicConstraints должно иметь значение CA:TRUE (critical), а keyUsage — включать keyCertSign.

    bash
    # The certificate at the depth named in the error must be a CA
    openssl x509 -in int.pem -noout -subject -ext basicConstraints,keyUsage
  2. 2.

    Перевыпустите промежуточный сертификат как сертификат CA

    Подпишите его заново с расширениями CA; выпущенные им сертификаты останутся действительными, если ключ и субъект не изменятся.

    bash
    printf 'basicConstraints=critical,CA:TRUE,pathlen:0\nkeyUsage=critical,keyCertSign,cRLSign\n' > ca.ext
    openssl x509 -req -in int.csr -CA root.pem -CAkey root.key -days 1825 -extfile ca.ext -out int.pem

Связанные ошибки

Открыть всю базу ошибок подписей