Pular para o conteúdo
ecdsa.com
OpenSSL 3.x CLI (openssl s_client / openssl verify)CLI do OpenSSL

Mensagem de erro

verify error:num=79:invalid CA certificate

Também aparece como

  • error 79 at 1 depth lookup: invalid CA certificate

O OpenSSL 3.0.13 e o 3.5.7 informam esse caso como erro 79 (referências mais antigas listam “invalid CA certificate” como erro 24, que ainda existe para outras verificações de CA). O s_client também imprime o erro 26, “unsuitable certificate purpose”, para o mesmo certificado, e a linha de resumo dele mostra esse último código.

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

O que significa

Erro 79 do OpenSSL (X509_V_ERR_INVALID_CA): um certificado que ocupa uma posição de emissor na cadeia não é um certificado de CA válido — o basicConstraints dele diz CA:FALSE ou está ausente, ou o keyUsage não permite assinar certificados. A profundidade na mensagem do openssl verify aponta para o certificado problemático (1 é o primeiro intermediário).

Por que acontece

Como corrigir

  1. 1.

    Inspecionar o certificado na profundidade informada

    O basicConstraints precisa ser CA:TRUE (crítico) e o keyUsage precisa incluir 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.

    Reemitir o intermediário como CA

    Assine-o novamente com extensões de CA; os certificados que ele emitiu continuam válidos se a chave e o titular não mudarem.

    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

Erros relacionados

Ver toda a base de erros de assinatura