Aller au contenu
ecdsa.com
pnpm 12 (native binary, rustls)Gestionnaires de paquets

Message d’erreur

Error: ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR

Également affiché sous la forme

  • Error: ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST

Le code d’erreur affiché en tête dépend de la commande : ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR pour pnpm install, ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST pour pnpm add. La chaîne de causes affichée en dessous indique « Failed to fetch metadata from <url>: error sending request: client error (Connect): invalid peer certificate: UnknownIssuer » et est coupée en lignes de 80 colonnes. pnpm 10 et les versions antérieures s’exécutent sur Node.js et signalent à la place des codes Node.js comme SELF_SIGNED_CERT_IN_CHAIN ou UNABLE_TO_GET_ISSUER_CERT_LOCALLY.

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

Ce que cela signifie

pnpm 12 n’a pas pu récupérer les métadonnées des paquets depuis le registre, et la chaîne de causes qu’il affiche se termine par « invalid peer certificate: UnknownIssuer » : un échec de vérification TLS. pnpm 12 est un binaire natif dont le client HTTP vérifie les certificats avec rustls, et « UnknownIssuer » est le code unique que rustls emploie pour tous les échecs de construction de chaîne : AC privée inconnue, racine d’un proxy, certificat intermédiaire manquant ou certificat auto-signé.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Définir cafile dans .npmrc

    pnpm lit les fichiers de configuration au format npm ; cafile (ou une valeur ca en ligne) ajoute l’AC pour les requêtes vers le registre.

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

    Installer la racine dans le magasin du système d’exploitation

    Lors de notre test, pnpm 12 a accepté une racine ajoutée avec update-ca-certificates : les racines déployées par le service informatique fonctionnent donc sans configuration supplémentaire.

    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.

    Ou utiliser NODE_EXTRA_CA_CERTS

    pnpm 12 prend lui aussi en compte cette variable, ce qui permet de garder un seul réglage pour Node.js, npm et pnpm.

    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

Erreurs associées

Parcourir toute la base de données des erreurs de signature