복붙노트

[PYTHON] 최신 종속성에도 불구하고 파이썬 요청에 SSL 오류가 발생했습니다.

PYTHON

최신 종속성에도 불구하고 파이썬 요청에 SSL 오류가 발생했습니다.

SSL "잘못된 핸드 셰이크"오류가 나타납니다. 이 문제에 대한 가장 유사한 응답은 오래된 라이브러리 인 1024bit cert에서 비롯된 것 같습니다. 비호 환성, 등등 ... 나는 최신이라고 생각하고 왜이 오류가 나는지 알아낼 수 없다.

설정:

나는이 API (2048bit 인증서 키)를 치고있다 : https://api.sidecar.io/rest/v1/provision/application/device/count/

이 오류가 발생했습니다. requests.exceptions.SSLError : ( "잘못된 핸드 셰이크 : 오류 ([( 'SSL 루틴', 'ssl3_get_server_certificate', '인증서 확인 실패')]))))

https://github.com/sidecar-io/sidecar-python-sdk/blob/master/sidecar.py의 l.44를 참조하십시오.

요청에서 verify = False로 설정하면 무시할 수 있지만 인증 실패 이유를 알 수 있습니다.

어떤 도움이라도 대단히 감사합니다. 감사!

해결법

  1. ==============================

    1.액세스하는 서버가 부적절하게 설정되었으므로 유효성 검사가 실패합니다. 즉, 설정 또는 코드의 오류가 아닙니다. SSLLabs의 보고서를 보면

    액세스하는 서버가 부적절하게 설정되었으므로 유효성 검사가 실패합니다. 즉, 설정 또는 코드의 오류가 아닙니다. SSLLabs의 보고서를 보면

    즉, 서버가 중간 인증서가없는 인증서 체인을 신뢰할 수있는 루트에 보내므로 클라이언트가 트러스트 체인을 구축 할 수 없습니다. 대부분의 데스크탑 브라우저는이 문제를 해결하기 위해 누락 된 인증서를 다른 곳에서 가져 오려고 시도하지만이 경우 일반 TLS 라이브러리는 실패합니다. 이 문제를 해결하려면 누락 된 체인 인증서를 신뢰할 수있는 것으로 명시 적으로 추가해야합니다.

    import requests
    requests.get('https://api.sidecar.io', verify = 'mycerts.pem')
    

    mycerts.pem에 누락 된 중간 인증서 및 신뢰할 수있는 루트 인증서가 있어야합니다. mycerts.pem에 대한 테스트 버전은 http://pastebin.com/aZSKfyb7에서 찾을 수 있습니다.

  2. ==============================

    2.이 방법으로 문제를 해결할 수 있습니다.

    이 방법으로 문제를 해결할 수 있습니다.

    print(requests.get(url, proxies,verify = False))
    
  3. from https://stackoverflow.com/questions/42538930/ssl-error-with-python-requests-despite-up-to-date-dependencies by cc-by-sa and MIT license