2017-12-29 52 views
0

나는 Heroku 및 asyncpg를 통해 PostgreSQL 데이터베이스를 실행 중입니다. 내 URL은 postgres://user:[email protected]:5432/db_name입니다. 내가 psycopg2를 사용할 때인증서 확인 실패 PostgreSQL Heroku

이 데이터베이스 URL이 확실히 작동
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777) 

, 그것은 유효 :이 프로그램을 실행할 때

, 나는 오류가 발생합니다. 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)의 정말 오래된 버전을 가지고 있기 때문에, 아마 정말 오래된 파이썬 (2.7.9), 정말 나이 requests (2.5.1) 모듈.

나는 모든 (Heroku가-16 스택, 파이썬 2.7.14, requests 2.18.4)를 업그레이드, 그러나 아마 문제가 해결되는 것은 requests 지금 certifi 모듈을 필요로했다. 내 이해 이제 모듈을 SSL 유효성 검사를 처리합니다.