Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

927
Visualizações
pymongo [SSL: CERTIFICATE_VERIFY_FAILED]: el certificado ha caducado en Mongo Atlas

Estoy usando MongoDB (Mongo Atlas) en mi aplicación Django. Todo funcionaba bien hasta ayer. Pero hoy, cuando ejecuté el servidor, me muestra el siguiente error en la consola

 Exception in thread django-main-thread: Traceback (most recent call last): File "c:\users\admin\appdata\local\programs\python\python39\lib\threading.py", line 973, in _bootstrap_inner self.run() File "c:\users\admin\appdata\local\programs\python\python39\lib\threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\core\management\commands\runserver.py", line 121, in inner_run self.check_migrations() File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\core\management\base.py", line 486, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\migrations\executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\migrations\loader.py", line 53, in __init__ self.build_graph() File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\migrations\loader.py", line 220, in build_graph self.applied_migrations = recorder.applied_migrations() File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\migrations\recorder.py", line 77, in applied_migrations if self.has_table(): File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\migrations\recorder.py", line 56, in has_table tables = self.connection.introspection.table_names(cursor) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\backends\base\introspection.py", line 52, in table_names return get_names(cursor) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\db\backends\base\introspection.py", line 47, in get_names return sorted(ti.name for ti in self.get_table_list(cursor) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\djongo\introspection.py", line 47, in get_table_list for c in cursor.db_conn.list_collection_names() File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\database.py", line 880, in list_collection_names for result in self.list_collections(session=session, **kwargs)] File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\database.py", line 842, in list_collections return self.__client._retryable_read( File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\mongo_client.py", line 1514, in _retryable_read server = self._select_server( File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\mongo_client.py", line 1346, in _select_server server = topology.select_server(server_selector) File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\topology.py", line 244, in select_server return random.choice(self.select_servers(selector, File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\topology.py", line 202, in select_servers server_descriptions = self._select_servers_loop( File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\Lib\site-packages\pymongo\topology.py", line 218, in _select_servers_loop raise ServerSelectionTimeoutError( pymongo.errors.ServerSelectionTimeoutError: cluster0-shard-00-02.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129),cluster0-shard-00-01.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129),cluster0-shard-00-00.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129), Timeout: 30s, Topology Description: <TopologyDescription id: 6155f0c9148b07ff5851a1b3, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('cluster0-shard-00-00.mny7y.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('cluster0-shard-00-00.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)')>, <ServerDescription ('cluster0-shard-00-01.mny7y.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('cluster0-shard-00-01.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)')>, <ServerDescription ('cluster0-shard-00-02.mny7y.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('cluster0-shard-00-02.mny7y.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)')>]>

estoy usando djongo como motor de base de datos

 DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'DbName', 'ENFORCE_SCHEMA': False, 'CLIENT': { 'host': 'mongodb+srv://username:password@cluster0.mny7y.mongodb.net/DbName?retryWrites=true&w=majority' } } }

Y las siguientes dependencias se están utilizando en la aplicación

 dj-database-url==0.5.0 Django==3.2.5 djangorestframework==3.12.4 django-cors-headers==3.7.0 gunicorn==20.1.0 psycopg2==2.9.1 pytz==2021.1 whitenoise==5.3.0 djongo==1.3.6 dnspython==2.1.0

¿Qué se debe hacer para resolver este error?

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Esto se debe a que una CA raíz que usa Let's Encrypt (y Mongo Atals usa Let's Encrypt) expiró el 2020-09-30, a saber, la "IdentTrust DST Root CA X3".

La solución es instalar manualmente en el almacén de certificados de Windows los certificados raíz "ISRG Root X1" e "ISRG Root X2", y el intermedio "Let's Encrypt R3" - enlace a su sitio oficial - https://letsencrypt.org/ certificados/

Copie de los comentarios: descargue el campo .der de la 1ra categoría, descargue, haga doble clic y siga el asistente para instalarlo.

over 4 years ago · Santiago Trujillo Relatório

0

Encontré la solución en la comunidad mondodb.

Descargar https://letsencrypt.org/certs/lets-encrypt-r3.pem

  1. cambiar el nombre del archivo .pem a .cer
  2. haga doble clic e instale
  3. y luego intente ejecutar la aplicación, su problema de SSL se resolverá. Salud !!!

fuente: [https://www.mongodb.com/community/forums/t/keep-getting-serverselectiontimeouterror/126190/13][1]

Gracias a Aniket_Gole

over 4 years ago · Santiago Trujillo Relatório

0

Otra solución de la comunidad MongoDB. Súper fácil y funcionó para mí. Puede leer la solución completa aquí:

https://www.mongodb.com/community/forums/t/keep-getting-serverselectiontimeouterror/126190/

Esto es lo que funcionó para mí (Windows 11):

compruebe que dnspython, pymongo y certifi están instalados en su entorno virtual o instálelos mediante:

 pip install dnspython pymongo certifi

¿Puede usar la terminal/línea de comandos y ejecutar Python? En el entorno de Python, ¿puede ingresar y = ejecutar los siguientes comandos (cambie la contraseña según corresponda para su usuario en su clúster de Atlas):

 from pymongo import MongoClient import certifi s = MongoClient("mongodb+srv://m220student:m220password@cluster0.maiqr.mongodb.net", tlsCAFile=certifi.where())
over 4 years ago · Santiago Trujillo Relatório

0

Resolví el problema en mi máquina de Windows. Tenía que ver con el vencimiento del certificado DST Root CA X3 de Let's Encrypt.

  1. Descargar https://letsencrypt.org/certs/lets-encrypt-r3.pem
  2. cambiar el nombre del archivo .pem a .cer
  3. haga doble clic e instale
  4. Reinicie su PC

Aún así, si no funciona

  1. Vaya a https://letsencrypt.org/certificates/
  2. Descargue ISRG Root X1, ISRG Root X2 (certificados raíz), Let's Encrypt R3 (certificados intermedios)
  3. Reinicie su PC
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda