2017-04-27 4 views
0

회사 네트워크에 있습니다 인증서를 사용해야 특정 페이지에 액세스 할 수 있습니다. HTTPS 웹 페이지를 검색하고 사용할 인증서를 지정할 수있는 모듈을 온라인에서 검색해 보았습니다. 이 코드가이 정상적인 HTTPS 페이지를 검색에서 작동Python2.7에서 SSL 인증서 사용 *

import requests 
page = requests.get("https://k9ballistics.com/",'lxml') 
thing = page.content 
thing = thing.split('\n') 
for m in thing: 
    if '<tr>' in m: 
     print m 

을,하지만 우리의 페이지에 액세스하려고 할 때이 오류가 발생합니다 :

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",) 

내가 할 수있는 방법을 찾으려했다 이식성을 위해 pip 설치된 패키지에 의존하는 것과는 반대로 이미 파이썬과 함께 제공되는 모듈을 가지고 있습니다.

저는 Windows에 있지만, 필자의 리눅스 워크 스테이션의 인증서를 갖고 싶습니다. 또한 Windows에 우분투 배쉬도 있습니다.

+0

나열된 URL은 소스 코드를 검색 할 수있는 일반 HTTPS 사이트의 예입니다. 내부 도메인은이 질문에 나열되어 있지 않습니다. – saniboy

답변

2

당신은 신뢰할 CAs의 인증서와 CA_BUNDLE 파일이나 디렉토리의 경로를 확인 전달할 수 있습니다

requests.get('https://eg.com', verify='/path/to/certfile.pem') 

또는 지속적인

을 :
s = requests.Session() 
s.verify = '/path/to/certfile.pem' 

은 또한 당신은 verify=False하여 SSL 인증서를 검증 무시할 수 있습니다.

자세한 내용을 보려면 SSL Cert Verification을보십시오.

+0

여전히 같은 오류가 발생하지만이 경우에는 필요한 인증서가 아닐 수도 있습니다. 당신은 내 질문에 답해 주셔서 감사합니다. – saniboy