2017-12-22 2 views
1

나는 shopify 저장소에 GET 요청을 만들려고 노력하고, packershoes를 제기 오류 :만들기 요청이 도메인을 shopify에 (파이썬)는 다음과 같이 SSLError

File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 467, in get 
    return self.request('GET', url, **kwargs) 

File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in request 
    resp = self.send(prep, **send_kwargs) 

File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in send 
    r = adapter.send(request, **kwargs) 

File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send 
    raise SSLError(e) 

requests.exceptions.SSLError: hostname 'packershoes.com' doesn't match either of '*.myshopify.com', 'myshopify.com' 

다른 사이트를 요청하면 제대로 작동합니다.

+0

을 : 브라우저와 packershoes.com를 방문하여 packershoes.com 인증서로 뒷받침되는 페이지를 얻을 수 있습니다 ... 아마도 액세스하려는 URL을 확인할 수 있습니까? – holdenweb

+0

'endpoint = "http://www.packershoes.com" print session.get (endpoint, headers = headers)' – lylecarlson

답변

2

이것은 SSL 문제보다 파이썬 문제가 더 많은 것처럼 보입니다. 귀하는 귀하의 코드를 우리에게 알려주지 않으므로 여기서 추측을하고 있습니다 만, 귀하가 연결하고있는 사이트가 귀하가 사용중인 호스트 이름과 일치하지 않는 SSL 인증서를 제시하고있는 것처럼 보입니다. 여기에 해상도는 일반적으로 : 다른 호스트 이름이있는 경우

  • 참조하면해야/인증서의 호스트 이름과 일치 것이라고를 사용하여이 될 수
  • 보고서 액세스하려는 사이트에 문제와 끝 부분에 구성 오류가 있는지 확인하거나
  • 코드에서 인증서 유효성 검사를 비활성화하십시오. 중간자 공격 (man-in-the-middle attacks)에 이르기까지 코드를 열 수 있기 때문에 실제로 그렇게하고 싶지는 않습니다.

이 내용은 in the requests documentation입니다. 문제를 좀 더 자세히 살펴보면

업데이트

, 나는이 문제를 자신을 재현 할 수없는 것을 알 수 있습니다. www.packershoes.com 제시 한 인증서는 *.myshopify.com 명확하게, 그러나 그 주소가 실제로 나는 당신의 문제는 단순히 어느 버전으로 관련이없는 궁금 packer-shoes.myshopify.com

$ host www.packershoes.com 
www.packershoes.com is an alias for packer-shoes.myshopify.com. 
packer-shoes.myshopify.com is an alias for shops.myshopify.com. 
shops.myshopify.com has address 23.227.38.64 

의 별칭입니다 때문에 아마 어떤 인증서 오류를 얻을하지 않습니다 requests을 로컬 DNS 구성에서 사용하고 있는지 확인하십시오. 요청에 www.packershoes.com을 (를) packer-shoes.myshopify.com (으)로 바꾸면 제대로 작동합니까?

+0

verify = False로 설정하여 전달할 수있었습니다. '엔드 포인트 = "http://www.packershoes.com" 인쇄에 Session.get' 그래서이 보안 문제에 코드를 열어 (엔드 포인트, 헤더 = 헤더 = 거짓 확인)? – lylecarlson

+0

물론입니다. 더 이상 인증서의 ID를 확인하지 않으므로 트래픽을 가로 채기 위해 자체 서명 인증서를 사용하여 중간에 일종의 프록시를 넣을 수 있습니다. –

0

요청은 웹 브라우저와 마찬가지로 HTTPS 요청에 대한 SSL 인증서를 확인합니다. 기본적으로 SSL 확인이 가능하며, 요청이 인증서를 확인할 수 없습니다 만약 False로하는 확인 SSLError을, 당신이 설정 한 던질 것이다 : 나는이 메시지를 이해 확실하지

session.get("http://www.packershoes.com", headers=headers, verify=False)