Pular para o conteúdo
ecdsa.com
Yarn Classic (1.x); Yarn 4 prints the aliasGerenciadores de pacotes

Mensagem de erro

error Error: unable to get local issuer certificate

Também aparece como

  • YN0001: RequestError: unable to get local issuer certificate

O Yarn 1.x imprime “error Error: unable to get local issuer certificate” seguido de um stack trace do Node.js. Se o registro envia só o certificado folha, o texto passa a ser “unable to verify the first certificate”.

O que significa

O Yarn Classic recebeu do registro uma cadeia de certificados (certificado folha e intermediário), mas o Node.js não confia na raiz acima dela. O Yarn repassa o erro do Node.js sem alterações. Em geral, o registro não tem nada de errado; o que falta nesta máquina é a raiz da empresa ou do proxy à qual a cadeia leva.

Por que acontece

Como corrigir

  1. 1.

    Definir o cafile do Yarn 1

    Aponte o Yarn para a raiz da empresa (ou para um bundle que inclua também as raízes públicas, já que o cafile substitui as raízes padrão nas requisições ao registro).

    bash
    yarn config set cafile /etc/ssl/private-ca/corp-root-ca.pem
  2. 2.

    Ou usar NODE_EXTRA_CA_CERTS

    Adiciona a raiz à lista embutida do Node.js para o Yarn e para qualquer outro processo Node.js iniciado com a variável.

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

    Yarn 4: httpsCaFilePath

    O Yarn 4 imprime a falha como “YN0001: RequestError: unable to get local issuer certificate” e obtém o arquivo de CA a partir de httpsCaFilePath no .yarnrc.yml.

    yaml
    # Yarn 4: .yarnrc.yml
    httpsCaFilePath: /etc/ssl/private-ca/corp-root-ca.pem
  4. 4.

    Verificar quais hosts o lockfile usa

    Se as URLs resolvidas apontam para um espelho interno, a correção deve ser feita no certificado desse espelho ou no seu trust store, e não na configuração do registro.

    bash
    # Which hosts does the lockfile download from?
    grep -oE 'resolved "https://[^/]+' yarn.lock | sort | uniq -c

Erros relacionados

Ver toda a base de erros de assinatura