Aller au contenu
ecdsa.com
Yarn Classic (1.x); Yarn 4 prints the aliasGestionnaires de paquets

Message d’erreur

error Error: unable to get local issuer certificate

Également affiché sous la forme

  • YN0001: RequestError: unable to get local issuer certificate

Yarn 1.x affiche « error Error: unable to get local issuer certificate », suivi d’une trace de pile Node.js. Si le registre n’envoie que son certificat feuille, le texte est plutôt « unable to verify the first certificate ».

Ce que cela signifie

Yarn Classic a reçu du registre une chaîne de certificats (feuille et intermédiaire), mais Node.js ne fait pas confiance à la racine située au-dessus. Yarn remonte l’erreur de Node.js sans la modifier. Le registre fonctionne généralement correctement : c’est sur cette machine que manque la racine d’entreprise ou de proxy à laquelle mène la chaîne.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Définir le cafile de Yarn 1

    Indiquez à Yarn la racine de l’entreprise (ou un fichier qui contient aussi les racines publiques, car cafile remplace les racines par défaut pour les requêtes vers le registre).

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

    Ou utiliser NODE_EXTRA_CA_CERTS

    Ajoute la racine à la liste intégrée de Node.js pour Yarn et pour tout autre processus Node.js lancé avec la variable.

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

    Yarn 4 : httpsCaFilePath

    Yarn 4 affiche l’échec sous la forme « YN0001: RequestError: unable to get local issuer certificate » et lit le fichier d’AC indiqué par httpsCaFilePath dans .yarnrc.yml.

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

    Vérifier quels hôtes utilise le fichier de verrouillage

    Si les URL résolues pointent vers un miroir interne, la correction concerne le certificat de ce miroir ou votre magasin de confiance, et non le paramètre de registre.

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

Erreurs associées

Parcourir toute la base de données des erreurs de signature