2017-12-29 53 views
0

私はHerokuとasyncpgを使用してPostgreSQLデータベースを実行しています。私のURLはpostgres://user:[email protected]:5432/db_nameです。証明書検証失敗PostgreSQL Heroku

私はこれを実行すると、私はエラーを取得:このデータベースのURLは間違いなく動作します

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

私は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 

答えて

0

私はこの問題を持っていた私は、新しいSSL証明書、およびHerokuのスタック(杉-14)の本当に古いバージョン、本当に古いのpython(2.7.9)、そして本当に古いを持っていたので、それはおそらくでしたrequests(2.5.1)モジュール。

私はすべて(Herokuの-16スタック、パイソン2.7.14、requests 2.18.4)をアップグレードし、おそらく問題を解決する事がrequestsが今certifiモジュールが必要ということでした。私の理解は、モジュールが今SSL検証を処理していることです。

関連する問題