다음 주소의 Nav Canada 웹 사이트에서 최신 항공 날씨 데이터를 긁는 스크립트를 만들었습니다.SSL : CERTIFICATE_VERIFY_FAILED Nav Canada 웹 사이트를 열려고 할 때
나는 몇 가지 변수를 계산하고 라즈베리 파이를 사용하여 내 자신의 웹 서버에 표시하려면이 데이터를 사용합니다. 며칠 전 여러 달 동안 아무 문제없이이 오류가 발생했습니다. 다른 웹 사이트로 연결을 전환하여 요청 모듈의 버그인지 확인했지만 다른 웹 사이트는 정상적으로 작동합니다. 이런 식으로 사이트에 액세스하는 것이 어떻게 든 금지 될 수 있습니까? 브라우저를 통해 액세스 할 수 있습니다. 아니면 제가 생각하지 못했던 또 다른 근본적인 문제입니까? 다음은 스택 추적입니다.
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\urllib\request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "C:\Program Files\Python36\lib\http\client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\Program Files\Python36\lib\http\client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\Program Files\Python36\lib\http\client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Program Files\Python36\lib\http\client.py", line 1026, in _send_output
self.send(msg)
File "C:\Program Files\Python36\lib\http\client.py", line 964, in send
self.connect()
File "C:\Program Files\Python36\lib\http\client.py", line 1400, in connect
server_hostname=server_hostname)
File "C:\Program Files\Python36\lib\ssl.py", line 401, in wrap_socket
_context=self, _session=session)
File "C:\Program Files\Python36\lib\ssl.py", line 808, in __init__
self.do_handshake()
File "C:\Program Files\Python36\lib\ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
File "C:\Program Files\Python36\lib\ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Philip Naida/Google Drive/Projects/WeatherDataCollector/WeatherDataCollector v_5.0/WeatherDataCollector.py", line 15, in <module>
source = urllib.request.urlopen('https://flightplanning.navcanada.ca/cgi-bin/CreePage.pl?Langue=anglais&NoSession=NS_Inconnu&Page=forecast-observation&TypeDoc=html').read()
File "C:\Program Files\Python36\lib\urllib\request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "C:\Program Files\Python36\lib\urllib\request.py", line 526, in open
response = self._open(req, data)
File "C:\Program Files\Python36\lib\urllib\request.py", line 544, in _open
'_open', req)
File "C:\Program Files\Python36\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "C:\Program Files\Python36\lib\urllib\request.py", line 1361, in https_open
context=self._context, check_hostname=self._check_hostname)
File "C:\Program Files\Python36\lib\urllib\request.py", line 1320, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>
당신이, 당신의 어떤 URLLIB를 사용하여이 웹 페이지에 액세스하고 무슨 일이 일어 나는지을 시도 할 수 할 수 있다면? 어떤 도움이라도 내 서버를 온라인 상태로 되돌리고 싶습니다.
감사
TLS 프로토콜 버전, 키 교환 및 암호는 인증서 유효성 검사와 관련이 없습니다. –
나는 단순히 Google 크롬이보고 한 오류 코드를 복사했습니다. – James
"사용되지 않는 연결 설정"으로 시작하는 Chrome의 개발자 도구에있는 보안 탭에 표시된 * 정보 *를 의미합니까? 이것은 * 오류 코드 *가 아니라 연결 보안의 품질에 대한 정보입니다. 오류가 있거나 수용 할 수없는 취약한 보안이있는 경우 Chrome은 사이트의 콘텐츠를 표시하지 않습니다. 그러나 단순히 인증서 유효성 검사를 건너 뛰는 제안은 사이트의 보안 설정이 아닌 최적의 보안 설정보다 연결 보안을 크게 손상시킵니다. –