web-dev-qa-db-fra.com

Numéro de la poignée de main SSL avec pympono sur python3

Essayer de se connecter à Azure Cosmosdb Mongo Server des résultats dans une erreur SSL Handshake.

J'utilise Python3 et Pymongo Pour vous connecter à mon azur cosmosdb. La connexion fonctionne bien si j'exécute le code avec Python27 mais provoque l'erreur ci-dessous lorsque vous utilisez Python3:

import pymongo
from pymongo import MongoClient
import json
import sys

def check_server_status(client, data):
   '''check the server status of the connected endpoint'''
   db = client.result_DB
   server_status = db.command('serverStatus')
   print('Database server status:')
   print(json.dumps(server_status, sort_keys=False, indent=2, separators=(',', ': ')))
   coll = db.file_result
   print (coll)
   coll.insert_one(data)

def main():
    uri = "mongodb://[email protected]:10255/?ssl=true&replicaSet=globaldb"
    client = pymongo.MongoClient(uri)
    emp_rec1 = {
        "name":"Mr.Geek",
        "eid":24,
        "location":"delhi"
        }
    check_server_status(client, emp_rec1)

if __name__ == "__main__":
    main()

En cours d'exécution sur Python3 Résultats dans ci-dessous Erreur:

pympongo.Errors.ServersElementTeureRorror: SSL Handshake a échoué: backendstore.documents.azure.com:10255: [SSL: certificat_verify_failed] Certificat Vérifier a échoué (_ssl.c: 749)

Voici ma sortie réussie lorsque j'exécute le même code avec Python27:

Statut du serveur de base de données: {"_": "okmongoresponse", "ok": 1} collection (base de données (mongoclient (hôte = ["backend.documents.azure.com:10255 '], document_class = dict, tz_aware = false, connectez-vous = Vrai, ssl = true, réplicaset = 'globaldb'), u'result_db '), u'file_result')

8
abhinav singh

Face au même problème lorsque vous essayez de connecter MongoDB à partir de l'océan Digital, résolu en utilisant cette fonction avec des paramètres de Mongoclient:

def get_client(Host,port,username,password,db):
      return MongoClient('mongodb://{}:{}/'.format(Host,port),
                         username=username,
                         password=password,
                         authSource=db,
                         ssl=True,ssl_cert_reqs=ssl.CERT_NONE)

client = get_client("Host-ip","port","username","password","db-name")
4
Aayush Bajaj

Résolu le problème avec ce changement:

client = pymongo.MongoClient(uri, ssl_cert_reqs=ssl.CERT_NONE)
4
abhinav singh

Sur Mac Mojave 10.14.6, j'ai utilisé (Pymongo 3.10 et python 3.7), pour résoudre:

flacon pympo pympo.Errors.ServersElementTimeTerror [SSL: Certificat_verify_FAILED]

Exécuter dans le terminal:

Sudo /Applications/Python\ 3.7/Install\ Certificates.command

Si vous utilisez d'autres python version, changez que Versión numéro (dans mon cas, j'ai Python 3.7)

2
Kevin Subieta