Zum Inhalt springen
ecdsa.com
OpenSSL CLI (openssl s_client / openssl verify -purpose)OpenSSL-CLI

Fehlermeldung

verify error:num=26:unsuitable certificate purpose

Auch ausgegeben als

  • Verify return code: 26 (unsuitable certificate purpose)
  • error 26 at 0 depth lookup: unsuitable certificate purpose

s_client gibt „verify error:num=26:…“ und „Verify return code: 26 (…)“ aus; openssl verify gibt „error 26 at <depth> depth lookup: unsuitable certificate purpose“ aus. Go meldet dasselbe Problem als „x509: certificate specifies an incompatible key usage“.

OpenSSL CLI (openssl s_client / openssl verify -purpose) — X509_V_ERR_INVALID_PURPOSE

Was der Fehler bedeutet

OpenSSL-Fehler 26 (X509_V_ERR_INVALID_PURPOSE): Die Kette ist ansonsten gültig, aber die Erweiterungen eines Zertifikats erlauben den geprüften Verwendungszweck nicht. s_client prüft das Serverzertifikat auf den Verwendungszweck TLS-Server, deshalb scheitert ein Zertifikat, dessen extendedKeyUsage nur clientAuth (oder emailProtection) enthält; openssl verify prüft den Zweck, den du mit -purpose angibst.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Key-Usage-Erweiterungen lesen

    extendedKeyUsage, keyUsage und basicConstraints zeigen, wofür das Zertifikat verwendet werden darf; openssl verify -purpose prüft einen bestimmten Verwendungszweck.

    bash
    openssl x509 -in server.pem -noout -ext extendedKeyUsage,keyUsage,basicConstraints
    # Check against the purpose you need: sslserver, sslclient, smimesign, ...
    openssl verify -CAfile root.pem -purpose sslserver server.pem
  2. 2.

    Für den richtigen Verwendungszweck neu ausstellen

    Ein TLS-Serverzertifikat braucht serverAuth in extendedKeyUsage (falls die Erweiterung vorhanden ist) und digitalSignature in keyUsage.

    bash
    openssl req -new -key server.key -out server.csr -subj "/CN=api.example.com" \
      -addext "subjectAltName=DNS:api.example.com" -addext "extendedKeyUsage=serverAuth"

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen