Saltar al contenido
ecdsa.com
pnpm 12 (native binary, rustls)Gestores de paquetes

Mensaje de error

Error: ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR

También se muestra como

  • Error: ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST

El código de la primera línea depende del comando: ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR para pnpm install y ERR_PNPM_PACKAGE_MANAGER_ADD_RESOLVE_LATEST para pnpm add. La cadena de causas que aparece debajo dice «Failed to fetch metadata from <url>: error sending request: client error (Connect): invalid peer certificate: UnknownIssuer» y se parte en líneas de 80 columnas. pnpm 10 y anteriores se ejecutan sobre Node.js y, en su lugar, informan de códigos de Node.js como SELF_SIGNED_CERT_IN_CHAIN o UNABLE_TO_GET_ISSUER_CERT_LOCALLY.

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

Qué significa

pnpm 12 no pudo obtener los metadatos de los paquetes del registro, y la cadena de causas que imprime termina en «invalid peer certificate: UnknownIssuer»: un fallo de verificación TLS. pnpm 12 es un binario nativo cuyo cliente HTTP verifica los certificados con rustls, y «UnknownIssuer» es el único código que usa rustls para cualquier fallo al construir la cadena: CA privada desconocida, raíz de un proxy, certificado intermedio que falta o certificado autofirmado.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Definir cafile en .npmrc

    pnpm lee archivos de configuración al estilo de npm; cafile (o un valor ca en línea) añade la CA para las solicitudes al registro.

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

    Instalar la raíz en el almacén del sistema operativo

    En nuestra prueba, pnpm 12 aceptó una raíz añadida con update-ca-certificates, así que las raíces que despliega el departamento de TI funcionan sin más configuración.

    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.

    O usar NODE_EXTRA_CA_CERTS

    pnpm 12 también respeta esta variable, así que basta un solo ajuste para Node.js, npm y 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

Errores relacionados

Explorar toda la base de datos de errores de firma