2013-06-11 6 views
5

Ich bekomme immer UNABLE_TO_VERIFY_LEAF_SIGNATURENode.js erlaubt kein CA-Zertifikat von einer API?

Wenn ich rejectUnauthorized: false gesetzt, verbindet es und macht die Anfrage. Dann sendet es die richtigen Daten zurück.

Ich verwende Node's https request function.

Meine CA eingerichtet ist, wie so in der Seite meiner Optionen Objekt:

ca: [fs.readFileSync('path/to/ca.pem')] 

Ich bin der Aktualisierung bewusst .10.10 auf Knoten, dass es nicht akzeptiert keine Selbst unterzeichnet Zert. Ist es weg, um es zu zwingen, diese ca zu akzeptieren, die ich definiert habe, ohne die Einstellung rejectUnauthorized oder NODE_TLS_REJECT_UNAUTHORIZED = "0" zu exportieren (zweite Option funktionierte überhaupt nicht).

+0

haben Sie das Problem gelöst? – keinabel

Antwort

0

Was ich getan habe, war, die Option rejectUnauthorized auf false zu setzen. Der Standardwert dieser Option wurde geändert seit Version 0.9.2

Ich nehme an, Sie können einen Agenten mit der angegebenen ca erstellen.

+0

Ich habe das schon probiert. Ich weiß, dass es Ihnen ermöglicht, die Anfrage zu stellen, aber es ist keine sichere Verbindung. –

+0

Haben Sie etwas wie https.request ({agent: yourAgent, ca: [yourCa]}, ...) versucht? Oder das ist nicht was du willst. – dliu

+0

Hier sind die Optionen, die ich weitergeben: https.request. var options = { host: '', Hafen:, ca: [fs.readFileSync ('')], rejectUnauthorized: false, Pfad: '', Methode: '', Header: { "User -Agent ":" "}, auth:" " }; –