Saltar al contenido
ecdsa.com
Node.js start-upcrypto de Node.js

Mensaje de error

Warning: Ignoring extra certs from `/etc/ssl/private-ca/corp-root-ca.pem`, load failed: error:80000002:system library::No such file or directory

La ruta es el valor de tu variable; el motivo varía: «No such file or directory» si el archivo no existe, «Permission denied» si no se puede leer y un error PEM de OpenSSL si el archivo existe, pero no está en formato PEM.

Node.js start-up — NODE_EXTRA_CA_CERTS could not be read

Qué significa

Node.js leyó NODE_EXTRA_CA_CERTS al arrancar, pero no pudo cargar el archivo que indica, así que arranca sin tus certificados de CA adicionales. El proceso no se detiene; las conexiones que necesitaban esos certificados fallan más tarde con «unable to get local issuer certificate» o «self-signed certificate in certificate chain». El motivo de OpenSSL que sigue a «load failed:» te dice por qué.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Comprobar el archivo al que apunta la variable

    Confirma que la ruta existe para el usuario que ejecuta Node.js y que openssl puede leer el archivo como un certificado PEM.

    bash
    echo "$NODE_EXTRA_CA_CERTS"
    ls -l "$NODE_EXTRA_CA_CERTS"
    openssl x509 -in "$NODE_EXTRA_CA_CERTS" -noout -subject   # must be PEM: -----BEGIN CERTIFICATE-----
  2. 2.

    Contenedores: incluir el archivo junto con la variable

    Copia el certificado de la CA en la imagen (o móntalo) en la misma ruta que indica la variable.

    text
    # Dockerfile: put the file where the variable points, inside the image
    COPY corp-root-ca.pem /usr/local/share/ca-certificates/corp-root-ca.crt
    ENV NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt
  3. 3.

    Usar una ruta absoluta

    Expande la ruta al definir la variable, para que no dependa del directorio de trabajo ni de la expansión de la shell.

    bash
    # Absolute path, expanded by the shell before node starts
    export NODE_EXTRA_CA_CERTS="$HOME/certs/corp-root-ca.pem"
  4. 4.

    Convertir DER a PEM

    NODE_EXTRA_CA_CERTS espera PEM. Convierte las exportaciones binarias con openssl x509 -inform der; se pueden concatenar varios certificados en un solo archivo PEM.

    bash
    # A DER (.cer) export from Windows must be converted to PEM first
    openssl x509 -inform der -in corp-root-ca.cer -out corp-root-ca.pem

Errores relacionados

Explorar toda la base de datos de errores de firma