Ich bin neu bei nodejs und npm. Ich versuche log4js zu installieren und dies ist der Befehl für die Installation:
npm install log4js
Ich führe dies über die Windows-Befehlszeile aus und nach einer Weile, in der sich ein Marker dreht, wird der folgende Fehler angezeigt:
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "log4js"
npm ERR! node v0.12.0
npm ERR! npm v2.5.1
npm ERR! code SELF_SIGNED_CERT_IN_CHAIN
npm ERR! self signed certificate in certificate chain
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! C:\srv\npm-debug.log
Ich habe versucht, npm config set ca=""
wie hier vorgeschlagen zu tun : http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more, aber ich erhalte immer noch diesen Fehler.
Wie kann ich das lösen und NPMs installieren?
virus
gelösten ProblemsAntworten:
Laut npm- Blog ist LTS von diesem Problem nicht betroffen. Verwenden Sie daher lieber die neueste Version.
In älteren Versionen verfügt npm über eine selbstsignierte ca-Datei, eine ca-Datei wird im sicheren SSL-Modus verwendet, während die Verbindung hergestellt wird, und die npm-Registrierung stellt ein aktualisiertes SSL-Zertifikat bereit
Dies ist nicht kompatibel mit der Ca-Datei älterer npm, daher der Verbindungsfehler aufgrund von SSL. Wenn Sie jedoch auf diesen Fehler stoßen, sollte Ihnen einer der folgenden Schritte helfen:
1) Aktualisieren Sie Ihre Version von npm
npm install npm -g --ca=null
2) Weisen Sie Ihre aktuelle Version von npm an, das ca des Knotens anstelle des eingebauten ca des npm zu verwenden.
npm config set ca=""
3) Sie können auch den strikten SSL-Modus deaktivieren, um den Fehler in der alten Version zu umgehen, aber Sie löschen die Sicherheit
npm set strict-ssl false
quelle
Ich hatte das gleiche Problem unter Windows 10.
Öffnen Sie Windows PowerShell und geben Sie den folgenden Befehl ein:
npm config set registry http://registry.npmjs.org/
Dann können Sie verwenden:
quelle
Ich bin auch neu bei npm. Neben den in Ihrem Link genannten Befehlen habe ich Folgendes versucht und meine Probleme behoben:
Referenz: Npm SELF_SIGNED_CERT_IN_CHAIN in Azure
quelle
Wie oben von Akshay Vijay Jain erwähnt,
Schalten Sie SSL aus, bevor Sie die neueste Version installieren
Installieren Sie dann die neueste Version
ERFOLG INSTALLIEREN !!
Weitere Informationen finden Sie in den hinzugefügten Screenshots.
quelle
Das Setzen von StrictSsl auf false ist zwar eine Option, gefährdet jedoch Ihre npm-Sicherheit. Ich empfehle, es nicht zu deaktivieren. Die folgenden Anweisungen erläutern Shreedhars Beitrag zur Verwendung der Cafile. Obwohl es aus der Perspektive eines Windows 10-Computers geschrieben wurde, kann es angepasst werden.
Unser Unternehmen verwendet SSL Inpsection über einen Proxy, daher müssen wir zumindest das SSL Inspection-Zertifikat beifügen. In den folgenden Anweisungen wird davon ausgegangen, dass Sie auf dem Computer, auf dem Sie eine extern erreichbare npm-Funktion verwenden möchten, einen modernen Webbrowser verwenden können.
npm config list
npm config set cafile "C:\Local\Path\To\cafile4npm.cer"
Ändern Sie den in Schritt 8 angegebenen Pfad und die Datei.npm install
Befehl aus.quelle
Haben Sie auch versucht, Einstellungen vorzunehmen,
cafile
die alle Pems in einer Datei enthalten? npm Stammzertifizierungsstelle hinzufügenWenn Sie in Ihrer
.npmrc
Datei einen Proxy verwenden, empfehle ich, dieno_proxy
Umgebungsvariable mit dem Wert von your festzulegen<server IP address>
quelle
In CentOS und anderen Linux-Distributionen müssen Sie NPM für die Verwendung Ihrer Certificate Authorities-Datei konfigurieren:
npm config set cafile "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" -g
Überprüfen Sie natürlich, ob die Datei vorhanden ist und alle CA-Roots enthält, auf die Sie möglicherweise stoßen (z. B. Corporate Proxy).
quelle
In meinem Fall hatte ich Fiddler installiert, das über ein selbstsigniertes Zertifikat verfügt, das die npm-Installation verrückt gemacht hat.
Hier erfahren Sie, wie Sie das selbstsignierte Fiddler-Zertifikat entfernen. So entfernen Sie das von Fiddler installierte Stammzertifizierungsstellenzertifikat
quelle
Ab dem 27. Februar 2014 unterstützt npm seine selbstsignierten Zertifikate nicht mehr . Die folgenden Optionen, wie von npm empfohlen, führen eine der folgenden Aktionen aus:
Aktualisieren Sie Ihre Version von npm
npm install npm -g --ca=""
-- ODER --
Teilen Sie Ihrer aktuellen Version von npm mit, dass bekannte Registrare verwendet werden sollen
npm config set ca ""
Update: npm hat mehr Hilfe mit SELF_SIGNED_CERT_IN_CHAIN und npm mit mehr Lösungen für verschiedene Umgebungen veröffentlicht
Lesen Sie hier mehr
quelle
Keine der obigen Antworten hat meiner Situation geholfen. Es stellte sich heraus, dass der Schuldige die Paketagentenbasis vor 6.0.1 war. In der Tat gab der Eigentümer zu, selbstsignierte Zertifikate in einem Testordner seines Pakets versandt zu haben. Dies erzwang eine Neuinstallation von -D und -g, aber das Problem tritt immer noch auf.
Ich habe dieses Zertifikat gefunden, indem ich den Ordner node_modules nach * .pem durchsucht habe.
Ich arbeite immer noch daran, npm-Caches dazu zu bringen, mir zuzuhören. Natürlich bin ich der Dummy, oder?
Ich werde zusätzliche Ergebnisse zurückschicken.
Lösung gefunden
07.07.2020
Unsere Angular-Anwendung wurde heute von 8.3 auf 10.0 aktualisiert. Erraten Sie, was? Die Fehler verschwanden. Die Hauptursache war, dass jemand ein nicht signiertes Zertifikat veröffentlicht hat, das es viel zu tief in der NPM-Modulbibliothek gemacht hat. Sogar NPM 6.15 hatte es!
quelle
Ich habe hier viele Lösungen ausprobiert und keine hat wirklich für mich funktioniert. Ich habe versucht, npm zu aktualisieren, habe aber entweder eine Zeitüberschreitung (als die Registrierung auf http://registry.npmjs.org/ eingestellt war ) oder eine 403 Forbidden-Antwort (als die Registrierung auf http s : //registry.npmjs.org/ eingestellt war) erhalten.
Am Ende realsing , dass mein Problem , indem sie sich hinter einem Proxy verursacht wurde, was tat Arbeit für mich am Ende war:
npm config set proxy http://proxy.company.com:8080 npm config set https-proxy http://proxy.company.com:8080
(Gutschrift: https://stackoverflow.com/a/12832637/4191296 )
quelle
Sie können die Zertifikatsüberprüfung für TLS-Verbindungen deaktivieren:
NODE_TLS_REJECT_UNAUTHORIZED=0 npm install puppeteer
quelle
Ich habe Knoten js und Angular Cli neu installiert. Es fing an zu funktionieren !!
quelle