2013-10-13 16 views
7

Ich teste SSL-Zugriff auf einen lokalen Knoten-Server mit Schlüsseln, ca, cert in Optionen (selbstsignierten w OpenSSL)SSL-Zertifikat Fehler

var server_options = { 
    key: fs.readFileSync('/etc/ssl/self-signed/server.key'), 
    ca: fs.readFileSync('/etc/ssl/self-signed/server.csr'), 
    cert: fs.readFileSync('/etc/ssl/self-signed/server.crt') 
}; 

versucht, darauf zuzugreifen:

curl -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token 

mit curl ich die folgende Fehlermeldung erhalten:

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

ich das CA-Zertifikat von http://curl.haxx.se/ca/cacert.pem und fügen sie sie auf meine curl-c heruntergeladen a-Bündel-new.crt Datei, wie in einigen Beiträgen vorgeschlagen Bezug zu locken ... aber keine Möglichkeit

hier ist das Protokoll

  • About to connect() to macMini.local port 8000 (#0)

    • Trying 192.168.1.14...
    • connected
    • Connected to macMini.local (192.168.1.14) port 8000 (#0)
    • SSLv3, TLS handshake, Client hello (1):
    • SSLv3, TLS handshake, Server hello (2):
    • SSLv3, TLS handshake, CERT (11):
    • SSLv3, TLS alert, Server hello (2):
    • SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    • Closing connection #0 curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html

Ich weiß, ich kann die Curl-CA Prüfung umgehen, mit:

curl -k -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token 

in welchem ​​Fall es läuft gut, kann ich sehen:

SSL certificate verify result: self signed certificate (18), continuing anyway.

aber ich würde gerne wissen, ob es eine Möglichkeit t o Lösen Sie dieses Problem ...

Antwort

7

Es ist Ihr selbstsigniertes Zertifikat, das Sie Ihrem CA-Bundle hinzufügen sollten. Andernfalls kann curl nicht wissen, dass es vertrauenswürdig ist.

+1

danke, ich hatte nur einige Schwierigkeiten zu finden, wo die cacert.pem war auf OSX (10.8) siehe oben .... – erwin

5

fand ich endlich den Standort auf OSX (10.8): /usr/share/curl/cacert.pem so ich es mir selbst signierte Zertifikat hinzugefügt, und die meinen Knoten-ssl neu gestarteten Server ..

dann curl Befehl jetzt läuft fein wo die Option -k

curl -v --user 1234567890:abcdefghijklmnopqrstuvwxyz --data "grant_type=password&username=yves&password=123456789" https://macMini.local:8000/oauth/token 

* About to connect() to macMini.local port 8000 (#0) 
* Trying 192.168.1.14... 
* connected 
* Connected to macMini.local (192.168.1.14) port 8000 (#0) 
* successfully set certificate verify locations: 
* CAfile: /usr/share/curl/cacert.pem 
    CApath: none 
... 
+2

Im Allgemeinen ist es besser Form, einen "Update" Abschnitt in der Frage enthalten, anstatt Ihre Ergebnisse zu liefern als Antwort –

+7

@MarkFox nein, es ist nicht. [Wenn das Originalposter eine Antwort gefunden hat, sollte es eine Antwort sein] (https://meta.stackoverflow.com/questions/278050/editing-self-answer-out-of-question) –

+0

@ om-nom-nom you ' Richtig - in einigen Fällen ist es besser zu aktualisieren, aber ich stehe korrigiert. –

0

auf mac, ich war immer ähnlich ssl Fehler im Zusammenhang beim Versuch composer zu installieren.

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate

für den Befehl

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 

Aber ich erfolgreich es installiert, indem Sie den Befehl ausführen

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/composer/ 

gemäß here angewiesen.