2017-12-29 26 views
0

Ich führe eine PostgreSQL-Datenbank über Heroku und asyncpg. Meine URL lautet: postgres://user:[email protected]:5432/db_name.Certificate Verify Failed Postgresql Heroku

Als ich das laufen lasse, erhalte ich die Fehlermeldung:

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777) 

Diese Datenbank-URL auf jeden Fall funktioniert, ist es gültig ist, wenn ich psycopg2 verwenden. Nur wenn ich asyncpg benutze, erhalte ich diesen Fehler.

Ich habe versucht, keinen Verbindungspool zu verwenden, der auch nicht funktioniert. Das manuelle Übergeben des Benutzers, des Passworts usw. funktioniert ebenfalls nicht.

class Database: 
    """Accessing database functions""" 
    def __init__(self, bot): 
     self.bot = bot 
     try: 
      self.dsn = os.environ["DATABASE_URL"] 
     except KeyError: 
      database_file = open('database_secret.txt', mode='r') 
      self.dsn = database_file.read() 
      database_file.close() 

     self.pool = None 
     self.prefix_conn = None 
     self.prefix_stmt = None 
     print(self.dsn) 

     lop = asyncio.get_event_loop() 
     lop.run_until_complete(self.init()) 

    async def init(self): 
     self.pool = await asyncpg.create_pool(self.dsn, ssl=True) 
     # It fails here 

Antwort

0

Ich hatte dieses Problem und es war wahrscheinlich, weil ich ein neues SSL-Zertifikat hatte, und eine wirklich alte Version des Heroku Stapels (Zeder-14), wirklich alter Python (2.7.9), und wirklich alt requests (2.5.1) Modul.

ich ein Upgrade alles (Heroku-16-Stack, Python 2.7.14, requests 2.18.4), aber wahrscheinlich das, was das Problem behoben war, dass requests jetzt erfordert die certifi Modul. Mein Verständnis ist, dass Modul jetzt die SSL-Validierung behandelt.

Verwandte Themen