2016-12-22 9 views
0

내가 요청 및 certifi를 사용하여 다음 사이트를 긁어하고 작동 나는 그것이 실패, 트래비스의 자동화 된 테스트를 실행 :SSL 인증서 실패,하지만 잘 로컬 (사용 요청 및 Certifi)

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

나는 이것에 대한 사용하고있는 코드는 매우 간단합니다 : 다른 b는

url = 'https://ecf.ared.uscourts.gov/cgi-bin/login.pl' 
r = requests.post(
    url, 
    verify=certifi.where(), 
    timeout=60, 
    files={ 
     'login': ('', username), 
     'key': ('', password) 
    }, 
) 

어떤 아이디어 무엇 Travis와 로컬 컴퓨터간에 인증서 오류가 발생합니까? 나는 certifi의 아이디어가 모든 것을 표준화하는 것이라고 생각했습니다. (두 컴퓨터에서 버전을 업데이트했음을 확인했습니다.)

답변

0

제작 중! Travis는 크로스 서명 인증서를 지원하지 않는 OpenSSL의 구버전을 사용합니다. 그러나 로컬 컴퓨터는 OpenSSL의 최신 버전을 사용합니다.

여기 해결책은 덜 안전하고 오래된 인증서 지원을 제공하는 certifi.old_where()을 사용하는 것입니다. 나는 우리가 가지고있는 OpenSSL의 버전을 업그레이드 할 수있을 때까지 자신을 사임했다.