Pular para o conteúdo
ecdsa.com
Yarn Classic (1.x)Gerenciadores de pacotes

Mensagem de erro

error Error: self-signed certificate in certificate chain

Também aparece como

  • error Error: self signed certificate in certificate chain

O Yarn 1.x imprime “error Error: …” seguido de um stack trace do Node.js (at TLSSocket.onConnectSecure …). O Node.js 16 e anteriores escrevem “self signed”. O Yarn 4 relata falhas de TLS no próprio formato, “➤ YN0001: RequestError: <reason>”.

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

O que significa

O Yarn Classic não conseguiu verificar o certificado do registro porque a cadeia termina em uma raiz autoassinada em que o Node.js não confia. O Yarn imprime o erro do Node.js como está, com um stack trace logo abaixo. Em uma rede corporativa, esse é o sintoma clássico de um proxy com inspeção de TLS cuja raiz é confiável para o navegador, mas não para o Node.js.

Por que acontece

Como corrigir

  1. 1.

    Definir o cafile do Yarn 1

    O comando yarn config set cafile faz o Yarn verificar o registro com base nesse arquivo PEM; assim como a configuração equivalente do npm, o cafile substitui as raízes padrão nas requisições ao registro.

    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.

    Ou usar NODE_EXTRA_CA_CERTS

    Adiciona a raiz à lista embutida do Node.js para o Yarn e para todas as outras ferramentas Node.js do ambiente.

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

    Yarn 4: httpsCaFilePath

    O Yarn moderno lê httpsCaFilePath do .yarnrc.yml; o Yarn 4 se recusa a iniciar quando encontra a chave legada 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.

    Diagnóstico temporário: strict-ssl false

    Confirma que a confiança é o único problema. Pacotes executam scripts de instalação, então deixar a verificação desligada abre caminho para pacotes substituídos; remova a configuração logo depois do teste.

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

Erros relacionados

Ver toda a base de erros de assinatura