2013-10-13 6 views
7

Je teste l'accès SSL à un serveur de nœud local avec la clé, ca, cert dans les options (auto-signé avec OpenSSL)erreur de certificat SSL

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') 
}; 

essayant d'y accéder:

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

en utilisant boucle je reçois l'erreur suivante:

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

J'ai téléchargé le certificat ca de http://curl.haxx.se/ca/cacert.pem et les ajouter à ma curl-c un paquet-new.crt fichier, comme suggéré dans certains postes liés à friser ... mais pas moyen

est ici le journal

  • 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

Je sais que je peux contourner le contrôle Curl CA, en utilisant:

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

auquel cas il fonctionne très bien, je peux voir:

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

mais je voudrais savoir s'il y a un moyen t o résoudre ce problème ...

Répondre

7

Il s'agit de votre certificat auto-signé que vous devez ajouter à votre offre groupée. Sinon, curl ne peut pas savoir qu'il peut faire confiance.

+1

merci, j'ai juste eu quelques difficultés à trouver où le cacert.pem était situé sur OSX (10.8) voir ci-dessus .... – erwin

5

j'ai finalement trouvé l'emplacement sur Mac OS X (10.8): /usr/share/curl/cacert.pem donc j'ajouté mon certificat auto-signé, et le serveur redémarré mon noeud-ssl ..

puis commande curl est maintenant fonctionne bien wo l'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

Généralement il est préférable d'inclure une section "mise à jour" dans la question plutôt que de fournir vos résultats comme réponse –

+7

@MarkFox non, ce n'est pas le cas. [Si l'affiche originale a trouvé une réponse, cela devrait être une réponse] (https://meta.stackoverflow.com/questions/278050/editing-self-answer-out-of-question) –

+0

@ om-nom-nom you ' re droit - dans certains cas, il est préférable de mettre à jour, mais je suis corrigé. –

0

Sur mac, je recevais ssl erreur semblable concernant en essayant d'installer composer.

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate

pour la commande

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

Mais je l'ai installé avec succès en exécutant la commande

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

selon les instructions here.