Zum Inhalt springen
ecdsa.com
pnpm 12 (native binary, rustls)Paketmanager

Fehlermeldung

Error: ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR

Auch ausgegeben als

  • Error: ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST

Der Code in der ersten Zeile hängt vom Befehl ab: ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR bei pnpm install, ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST bei pnpm add. Die Kette der Ursachen darunter lautet „Failed to fetch metadata from <url>: error sending request: client error (Connect): invalid peer certificate: UnknownIssuer“ und wird bei 80 Spalten umbrochen. pnpm 10 und älter laufen auf Node.js und melden stattdessen Node.js-Codes wie SELF_SIGNED_CERT_IN_CHAIN oder UNABLE_TO_GET_ISSUER_CERT_LOCALLY.

pnpm 12 (native binary, rustls) — registry request over HTTPS fails with "invalid peer certificate: UnknownIssuer"

Was der Fehler bedeutet

pnpm 12 konnte keine Paketmetadaten von der Registry abrufen, und die ausgegebene Kette von Ursachen endet mit „invalid peer certificate: UnknownIssuer“: ein Fehler bei der TLS-Prüfung. pnpm 12 ist ein natives Binary, dessen HTTP-Client Zertifikate mit rustls prüft, und „UnknownIssuer“ ist der einzige Code, mit dem rustls jedes Scheitern beim Aufbau der Kette meldet: unbekannte private CA, Root-Zertifikat eines Proxys, fehlendes Zwischenzertifikat oder selbstsigniertes Zertifikat.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    cafile in der .npmrc setzen

    pnpm liest Konfigurationsdateien im Stil von npm; cafile (oder ein direkt angegebener Wert für ca) fügt die CA für Anfragen an die Registry hinzu.

    ini
    ; .npmrc (project or ~/.npmrc) — read by pnpm as well as npm
    cafile=/etc/ssl/private-ca/corp-root-ca.pem
  2. 2.

    Root-Zertifikat im Zertifikatsspeicher des Betriebssystems installieren

    In unserem Test hat pnpm 12 ein mit update-ca-certificates hinzugefügtes Root-Zertifikat akzeptiert; Root-Zertifikate, die die IT verteilt, funktionieren also ohne weitere Konfiguration.

    bash
    # pnpm 12 also trusts the operating system's store
    sudo cp corp-root-ca.pem /usr/local/share/ca-certificates/corp-root-ca.crt
    sudo update-ca-certificates
  3. 3.

    Oder NODE_EXTRA_CA_CERTS verwenden

    pnpm 12 beachtet die Variable ebenfalls, sodass eine einzige Einstellung für Node.js, npm und pnpm genügt.

    bash
    # Honoured by pnpm 12 too, so one variable covers node, npm and pnpm
    export NODE_EXTRA_CA_CERTS=/etc/ssl/private-ca/corp-root-ca.pem
    pnpm install

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen