Erreur SSL avec Python demandes de malgré la mise à jour des dépendances
Je reçois un SSL "mauvais temps" d'erreur. La plupart des réponses à ce problème semble provenir d'anciennes bibliothèques, 1 024 bits cert. incompatibilité, etc... je pense je suis à jour, et ne peut pas comprendre pourquoi je reçois ce message d'erreur.
De l'INSTALLATION:
- demandes 2.13.0
- certifi 2017.01.23
- "OpenSSL 1.0.2 g 1 Mar 2016'
Je suis de frapper cette API (2048bit de clé de certificat): https://api.sidecar.io/rest/v1/provision/application/device/count/
Et obtenir cette erreur:
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)
Voir l'.44 de https://github.com/sidecar-io/sidecar-python-sdk/blob/master/sidecar.py
Si je tourne verify=False
des demandes, je peux contourner, mais je préfère comprendre pourquoi la certification est un échec.
Toute aide est grandement appréciée, merci!
Vous devez vous connecter pour publier un commentaire.
La validation échoue parce que le serveur d'accès est configuré de manière incorrecte, c'est à dire qu'il n'est pas une faute de votre installation ou de code. En regardant les rapport de SSLLabs vous voir
Cela signifie que le serveur envoie une chaîne de certificat qui est manquant un certificat intermédiaire de la racine de confiance et ainsi, votre client ne peut pas construire la chaîne de confiance. La plupart des navigateurs de bureau contourner ce problème en essayant d'obtenir le certificat manquant de quelque part d'autre, mais normal TLS bibliothèques échouera dans ce cas. Vous devez ajouter explicitement le manquant de la chaîne de certificat de confiance pour contourner ce problème:
mycerts.pem
doit contenir les intermédiaires manquants certificat et le certificat racine de confiance. Une version testée pourmycerts.pem
peut être trouvé dans http://pastebin.com/aZSKfyb7.Cela peut aider en tant que solution pour votre problème.
verify=False
comme une voie de contournement, mais demande une bonne solution.