Сертификат Подтвердить Сбой Postgresql Heroku

Я использую базу данных PostgreSQL через Heroku и asyncpg. Мой URL-адрес: postgres://user:pass@ec2-23-21-76-49.compute-1.amazonaws.com:5432/db_name,

Когда я запускаю это, я получаю ошибку:

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

Этот URL базы данных определенно работает, он действителен, когда я использую psycopg2. Просто когда я использую asyncpg, я получаю эту ошибку.

Я пытался не использовать пул соединений, который тоже не работает. Передача пользователя, пароля и т. Д. Также не работает.

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

1 ответ

У меня была эта проблема, и это было, вероятно, потому, что у меня был новый сертификат SSL и действительно старая версия стека Heroku (cedar-14), действительно старый python (2.7.9) и действительно старый requests (2.5.1) модуль.

Я все модернизирую (стека героку-16, питон 2.7.14, requests 2.18.4), но, вероятно, проблема была в том, что requests теперь требует certifi модуль. Насколько я понимаю, теперь модуль обрабатывает проверку SSL.

Другие вопросы по тегам