wake-up-neo.net

npm-Installationsfehler - lokales Ausstellerzertifikat kann nicht abgerufen werden

Beim Ausführen einer npm-Installation wird ein unable to get local issuer certificate-Fehler angezeigt:

typings ERR! message Unable to read typings for "es6-shim". You should check the
 entry paths in "es6-shim.d.ts" are up to date
typings ERR! caused by Unable to connect to "https://raw.githubusercontent.com/D
efinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/es6-shim
/es6-shim.d.ts"
typings ERR! caused by unable to get local issuer certificate

Ich habe vor kurzem auf Knoten 4 von einer viel früheren Version aktualisiert und es klingt, als wäre der Knoten viel strenger, wenn diese Art von Problemen auftreten.

In here wird ein Thema behandelt, in dem es um die Verwendung von ca-Dateien geht, aber es liegt etwas außerhalb meines Verständnisses und ich bin nicht sicher, was ich dagegen tun soll.

Ich stehe hinter einer Unternehmensfirewall, kann aber ohne Einschränkung in einem Browser zur URL gelangen.

Hat jemand einen weiteren Einblick in dieses Thema und welche Lösungsmöglichkeiten gibt es?

Ich frage mich, ob ich in der Zwischenzeit auf den Knoten 0.12 zurückkehren möchte :(

13
mindparse

Typisierungen können mit der Konfigurationsdatei ~/.typingsrc konfiguriert werden. (~ steht für Ihr Heimatverzeichnis)

Nachdem ich dieses Problem auf github gefunden hatte: https://github.com/typings/typings/issues/120 , konnte ich dieses Problem umgehen, indem ich ~/.typingsrc erstellte und diese Konfiguration einrichtete:

{
  "proxy": "http://<server>:<port>",
  "rejectUnauthorized": false
}

Es schien auch ohne die proxy-Einstellung zu funktionieren, also war es vielleicht möglich, das irgendwo aus der Umgebung zu holen.

Dies ist keine echte Lösung, aber typings reichte aus, um die Firewall-Probleme des Unternehmens zu ignorieren, damit ich weiterarbeiten konnte. Ich bin sicher, dass es da draußen eine bessere Lösung gibt.

8
nfiles

Versuchen Sie diesen npm config set strict-ssl false. Dies ist eine in dieser URL gemeinsam genutzte Alternative https://github.com/nodejs/node/issues/3742

40
Sam Jacob Dev

Es wird ein Thema besprochen, das über die Verwendung von CA-Dateien spricht, aber es liegt etwas außerhalb meines Verständnisses und ich bin nicht sicher, was ich dagegen tun soll.

Das ist nicht zu schwierig, wenn Sie wissen, wie! Für Windows:

Verwenden Sie Chrome zur Root-URL, über die sich NPM beschwert (in Ihrem Fall also https://raw.githubusercontent.com ). Öffnen Sie die Dev-Tools und gehen Sie zu Sicherheit-> Zertifikat anzeigen. Überprüfen Sie den Zertifizierungspfad und vergewissern Sie sich, dass Sie sich auf der obersten Stufe befinden, wenn Sie dieses nicht öffnen. Gehen Sie nun zu "Details" und exportieren Sie das Zertifikat mit "Copy to File ...".

Sie müssen dies von DER in PEM konvertieren. Es gibt mehrere Möglichkeiten, dies zu tun, aber der einfachste Weg, den ich gefunden habe, war ein Online-Tool, das mit relevanten Keywords leicht zu finden sein sollte. 

Wenn Sie nun den Schlüssel mit Ihrem bevorzugten Texteditor öffnen, sollten Sie dies sehen 

-----BEGIN CERTIFICATE----- 

yourkey

-----END CERTIFICATE-----

Dieses Format benötigen Sie. Sie können dies für beliebig viele Schlüssel tun und alle in einer Datei zusammenfassen. Ich musste github und die npm-Registrierungsschlüssel in meinem Fall ausführen.

Bearbeiten Sie nun Ihre .npmrc-Datei so, dass sie auf die Datei mit Ihren Schlüsseln verweist

cafile=C:\workspace\rootCerts.crt

Ich persönlich habe festgestellt, dass dies gegenüber unserem Unternehmens-Proxy wesentlich besser ist als bei der Option strict-ssl. YMMV.

5
Tim L

Platzieren Sie sie einfach mit der Eingabeaufforderung unter den Kommentaren.

Es wurde zu 100% erfolgreich gelöst

-npm config set strict-ssl false
4
Yogesh Patil

Ein Haftungsausschluss: Diese Lösung ist weniger sicher, schlechte Praxis, tun Sie dies nicht. Ich hatte eine doppelte Fehlermeldung - ich bin hinter einem Unternehmen VPN/Firewall. Ich konnte dieses Problem beheben, indem ich meinem Benutzerverzeichnis eine .typingsrc-Datei hinzufügte (C:\Users\MyUserName\.typingsrc in Windows). Wenn Sie SSL umgehen, sollten Sie sich natürlich immer an Ihre Systemadministratoren wenden, um das Zertifikatproblem zu beheben.

Ändern Sie die Registrierungs-URL von https in http und setzen Sie =, wie in nfiles 'Antworter oben angegeben rejectUnauthorized to false.

. typingsrc (im Projektverzeichnis oder im Benutzerstammverzeichnis abgelegt)

{
     "rejectUnauthorized": false,
     "registryURL": "http://api.typings.org/"
}

Fügen Sie optional Ihr Github-Token hinzu. (Ich fand keinen Erfolg, bis ich dies ebenfalls hinzugefügt hatte.)

{
    "rejectUnauthorized": false,
    "registryURL": "http://api.typings.org/",
    "githubToken": "YourGitHubToken"
}

Anweisungen zum Einrichten Ihres Github-Tokens finden Sie unter https://github.com/blog/1509-personal-api-tokens .

1
Benson

Nun, das ist keine richtige Antwort, kann aber als schnelle Abhilfe betrachtet werden. Richtige Antwort ist Strict SSL deaktivieren.

Ich habe den gleichen Fehler

PhantomJS auf PATH nicht gefunden
Herunterladen https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.Zip
Speichern unter C:\Benutzer\Sam\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.Zip
Empfang... 

Fehler bei der Anforderung.
Fehler: Kein lokales Ausstellerzertifikat abgerufen
bei TLSSocket. (_tls_wrap.js: 1105: 38)
at emitNone (events.js: 106: 13)
bei TLSSocket.emit (events.js: 208: 7)
bei TLSSocket._finishInit (_tls_wrap.js: 639: 8)
bei TLSWrap.ssl.onhandshakedone (_tls_wrap.js: 469: 38) 

Also nach dem Lesen der Fehler. 

Laden Sie die Datei einfach manuell herunter und platzieren Sie sie auf dem erforderlichen Pfad ..__

C:\Users\Sam\AppData\Local\Temp\phantomjs\

Das hat mein Problem gelöst. 

    PhantomJS not found on PATH                                                                                                
Download already available at C:\Users\sam\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.Zip                    
Verified checksum of previously downloaded file                                                                            
Extracting Zip contents                                    
0
Sam

Hinzufügen:

process.env["NODE_TLS_REJECT_UNAUTHORIZED"]

Quelle: ngültiges selbstsigniertes SSL-Zertifikat in node.js mit https.request ignorieren?

0
Henry