webentwicklung-frage-antwort-db.com.de

npm ERR! Code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

Ich probiere alle Möglichkeiten aus, um eine Reaktionsanwendung zu erstellen. Ich habe es mit maven versucht und jetzt versuche ich es mit einem Kistenreaktions-App-Build-System von Facebook Incubators.

Als ich versuchte, den Befehl create-react-app my-app In einer npm-Umgebung auszuführen, funktionierte er auf meinem persönlichen System ohne Probleme. Als ich jedoch den gleichen Befehl in meiner Arbeitsumgebung ausprobierte, trat dieser Fehler bei der Eingabeaufforderung auf

npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm ERR! unable to get local issuer certificate
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>
62
Dinesh

Eine schnelle Lösung aus der Internetsuche war npm config set strict-ssl false, zum Glück hat es funktioniert. Aber als Teil meiner Arbeitsumgebung kann ich das strict-ssl-Flag nur auf false setzen.

Später fand ich eine sichere und funktionierende Lösung,

npm config set registry http://registry.npmjs.org/  

das hat perfekt geklappt und ich habe eine erfolgsmeldung bekommen Happy Hacking!, indem Sie das strict-ssl-Flag nicht auf false setzen.

180
Dinesh

was wahrscheinlich passiert, ist, dass Ihre Arbeit bestimmten Datenverkehr entschlüsselt und ihn mit seinem Zertifikat neu verschlüsselt (das Sie wahrscheinlich bereits in Ihrem Schlüsselbund oder in vertrauenswürdigen Stammzertifikaten haben).

wenn Sie Node 7 oder höher verwenden, hat sich herausgestellt, dass dieses Update mit Node und Node-Gyp kompatibel ist (für Windows müssen Sie dies anders ausführen, aber im Grunde müssen Sie nur diese Umgebungsvariable hinzufügen):

export NODE_EXTRA_CA_CERTS="absolute_path_to_your_certificates.pem"

die PEM-Datei kann mehrere Zertifikate haben: https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file

stellen Sie sicher, dass Ihre Zertifikate im richtigen PEM-Format vorliegen (Sie benötigen echte Zeilenumbrüche, nicht wörtliche \n)

Ich konnte es scheinbar nicht zum Laufen bringen mit . oder ~ Pfade

Dieser Fix weist npm und node-gyp grundsätzlich an, die Prüfung gegen die regulären Zertifizierungsstellen zu verwenden, dieses Zertifikat jedoch auch zuzulassen, wenn es gefunden wird

Idealerweise können Sie die vertrauenswürdigen Zertifikate Ihres Systems verwenden, was jedoch leider nicht der Fall ist.

9
Jordan

Das Ändern der NPM-Repo-URL in HTTP funktioniert als schnelle Lösung, aber ich wollte HTTPS verwenden.

In meinem Fall verursachte der Proxy bei meinem Arbeitgeber (ZScaler) Probleme (da er als MITM fungiert und Probleme bei der Zertifizierungsüberprüfung verursacht).

Ich habe vergessen, dass ich habe ein Skript gefunden das dabei hilft und Git (für das Klonen von GitHub-Repos über HTTPS hatte ich das gleiche Problem) und gabelte es für meine Verwendung

Grundsätzlich macht es folgendes für git:

git config --global http.proxy http://gateway.zscaler.net:80/
git config --system http.proxy http://gateway.zscaler.net:80/

und für Node wird proxy=http://gateway.zscaler.net:80/ bis zum Ende von c:\Users\$USERNAME\npm\.npmrc

Das hat das Problem für mich gelöst.

4
Robert Dundon

Hatte den gleichen Fehler. Sieht so aus, als würde es sich um SSL-Zertifikate handeln. Wenn Sie NPM für öffentliche Pakete verwenden (ohne die Sicherheit von HTTPS), können Sie die strikte Validierung des SSL-Schlüssels mit dem folgenden Befehl deaktivieren.

Dies ist möglicherweise die einfachste Lösung, wenn Sie nur ein paar öffentlich verfügbare Pakete gleichzeitig installieren möchten.

npm config set strict-ssl=false
3
Jason Geiger

Der folgende Code hat bei mir einwandfrei funktioniert, hier nur http statt https machen

npm config set registry http://registry.npmjs.org/  
2
Mohd Shariq

Vertrau mir, das wird für dich funktionieren:

    npm config set registry http://registry.npmjs.org/  
1