SSL certificat d'échec de la vérification, comment comprendre quelle en est la cause?
J'ai récemment obtenu un PositiveSSL certificat à Namecheap et l'avoir installé sur mon serveur. L'accès au site à partir de Firefox fonctionne très bien, mais y accéder à partir de Ruby net/https bibliothèque ne fonctionne pas: il ne parvient pas à vérifier la connexion de certificat, même si j'ai spécifié le chemin d'accès au certificat et j'ai vérifié que le fichier est lisible. Curl échoue également:
curl --cacert /path/to/cert https://mysite.com/
Il dit simplement quelque chose comme ceci:
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
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
"certificat de vérifier échec" n'est pas très utile de message d'erreur. Comment puis-je savoir quel est exactement le problème avec mon certificat et quoi faire à ce sujet? Je trouve cela déroutant qu'il fonctionne dans le navigateur, mais pas n'importe où ailleurs.
OriginalL'auteur Hongli | 2011-02-22
Vous devez vous connecter pour publier un commentaire.
Il ressemble curl exige que le certificat d'autorité de certification fichier contient TOUS les certificats de la chaîne. J'ai téléchargé tous les d'eux et les a combinés dans un seul fichier et maintenant les deux Curl et Ruby sont heureux.
Téléchargez d'abord de vous CA fournisseur de: 1. le certificat , nous allons l'appeler
cert.crt
et 2. un bundle qui est une chaîne de certificats, nous allons l'appelerbundle.crt
. Alors concat eux à l'aide decat cert.crt bundle.crt > cert.chained.crt
et l'utilisationcert.chained.crt
partout où vous utiliseriezcert.crt
. Cela fonctionne parce que le client va maintenant suivre les certificats de la chaîne jusqu'à la vérifiés de l'autorité.OriginalL'auteur Hongli