Перейти к содержимому
ecdsa.com
Node.js start-upМодуль crypto в Node.js

Сообщение об ошибке

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

Путь — это значение вашей переменной; причина бывает разной: «No such file or directory», если файла нет, «Permission denied», если его нельзя прочитать, и ошибка PEM от OpenSSL, если файл существует, но не в формате PEM.

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

Что это означает

При запуске Node.js прочитал NODE_EXTRA_CA_CERTS, но не смог загрузить указанный там файл, поэтому работает без ваших дополнительных сертификатов CA. Процесс не останавливается; соединения, которым нужны были эти сертификаты, позже завершаются ошибкой «unable to get local issuer certificate» или «self-signed certificate in certificate chain». Причину объясняет текст OpenSSL после «load failed:».

Почему это происходит

Как исправить

  1. 1.

    Проверьте файл, на который указывает переменная

    Убедитесь, что путь существует для пользователя, от имени которого работает Node.js, и что openssl может прочитать файл как 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.

    Контейнеры: поставляйте файл вместе с переменной

    Скопируйте сертификат CA в образ (или смонтируйте его) по тому пути, который указан в переменной.

    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.

    Используйте абсолютный путь

    Раскрывайте путь при задании переменной, чтобы он не зависел от рабочего каталога или от подстановок оболочки.

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

    Преобразуйте DER в PEM

    NODE_EXTRA_CA_CERTS ожидает PEM. Преобразуйте двоичные экспортированные файлы командой openssl x509 -inform der; несколько сертификатов можно объединить в один 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

Связанные ошибки

Открыть всю базу ошибок подписей