Zum Inhalt springen
ecdsa.com
Yarn Classic (1.x); Yarn 4 prints the aliasPaketmanager

Fehlermeldung

error Error: unable to get local issuer certificate

Auch ausgegeben als

  • YN0001: RequestError: unable to get local issuer certificate

Yarn 1.x gibt „error Error: unable to get local issuer certificate“ aus, gefolgt von einem Stacktrace von Node.js. Sendet die Registry nur ihr Leaf-Zertifikat, lautet der Text stattdessen „unable to verify the first certificate“.

Was der Fehler bedeutet

Yarn Classic hat von der Registry eine Zertifikatskette (Leaf- und Zwischenzertifikat) erhalten, aber Node.js vertraut dem darüberliegenden Root-Zertifikat nicht. Yarn gibt den Fehler von Node.js unverändert aus. Die Registry selbst ist meist in Ordnung; diesem Rechner fehlt das Root-Zertifikat der Firma oder des Proxys, zu dem die Kette führt.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    cafile von Yarn 1 setzen

    Verweise Yarn auf das Root-Zertifikat der Firma (oder auf ein Bundle, das auch die öffentlichen Root-Zertifikate enthält, denn cafile ersetzt bei Registry-Anfragen die Standard-Root-Zertifikate).

    bash
    yarn config set cafile /etc/ssl/private-ca/corp-root-ca.pem
  2. 2.

    Oder NODE_EXTRA_CA_CERTS verwenden

    Fügt das Root-Zertifikat der eingebauten Liste von Node.js hinzu – für Yarn und für jeden anderen Node.js-Prozess, in dessen Umgebung die Variable gesetzt ist.

    bash
    export NODE_EXTRA_CA_CERTS=/etc/ssl/private-ca/corp-root-ca.pem
    yarn install --frozen-lockfile
  3. 3.

    Yarn 4: httpsCaFilePath

    Yarn 4 meldet den Fehler als „YN0001: RequestError: unable to get local issuer certificate“ und bezieht die CA-Datei aus der Einstellung httpsCaFilePath in .yarnrc.yml.

    yaml
    # Yarn 4: .yarnrc.yml
    httpsCaFilePath: /etc/ssl/private-ca/corp-root-ca.pem
  4. 4.

    Prüfen, welche Hosts das Lockfile verwendet

    Verweisen die aufgelösten URLs auf einen internen Mirror, behebst du das Problem am Zertifikat dieses Mirrors oder in deinem Trust Store, nicht in der Registry-Einstellung.

    bash
    # Which hosts does the lockfile download from?
    grep -oE 'resolved "https://[^/]+' yarn.lock | sort | uniq -c

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen