Перейти к содержимому
ecdsa.com
Yarn Classic (1.x)Менеджеры пакетов

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

error Error: self-signed certificate in certificate chain

Также выводится как

  • error Error: self signed certificate in certificate chain

Yarn 1.x выводит «error Error: …», а затем трассировку стека Node.js (at TLSSocket.onConnectSecure …). Node.js 16 и более ранние версии пишут «self signed». Yarn 4 сообщает об ошибках TLS в собственном формате: «➤ YN0001: RequestError: <reason>».

Yarn Classic (1.x) — registry request over HTTPS

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

Yarn Classic не смог проверить сертификат реестра: цепочка заканчивается самоподписанным корневым сертификатом, которому Node.js не доверяет. Yarn выводит ошибку Node.js как есть, с трассировкой стека под ней. В корпоративной сети это классический признак прокси с инспекцией TLS, корневому сертификату которого доверяет браузер, но не Node.js.

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

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

  1. 1.

    Задайте cafile в Yarn 1

    Команда yarn config set cafile заставляет Yarn проверять сертификат реестра по указанному PEM-файлу; как и аналогичная настройка npm, она заменяет корневые сертификаты по умолчанию для запросов к реестру.

    bash
    # Yarn 1.x setting (stored in ~/.yarnrc)
    yarn config set cafile /etc/ssl/private-ca/corp-proxy-root.pem
    yarn config get cafile
  2. 2.

    Или используйте NODE_EXTRA_CA_CERTS

    Переменная добавляет корневой сертификат к встроенному списку Node.js для Yarn и всех остальных инструментов на Node.js в этом окружении.

    bash
    export NODE_EXTRA_CA_CERTS=/etc/ssl/private-ca/corp-proxy-root.pem
    yarn install
  3. 3.

    Yarn 4: httpsCaFilePath

    Современный Yarn читает httpsCaFilePath из .yarnrc.yml; Yarn 4 отказывается запускаться, если находит устаревший ключ caFilePath.

    yaml
    # Yarn 4 (Berry): .yarnrc.yml — Yarn 4 rejects the old caFilePath key
    httpsCaFilePath: /etc/ssl/private-ca/corp-proxy-root.pem
  4. 4.

    Временная диагностика: strict-ssl false

    Позволяет убедиться, что проблема только в доверии. Пакеты запускают скрипты установки, поэтому отключённая проверка открывает дорогу подменённым пакетам; удалите настройку сразу после теста.

    bash
    # Temporary diagnostic only; revert immediately afterwards
    yarn config set strict-ssl false && yarn install; yarn config delete strict-ssl

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

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