[PYTHON] SSL : Python3을 사용하여 CERTIFICATE_VERIFY_FAILED
PYTHONSSL : Python3을 사용하여 CERTIFICATE_VERIFY_FAILED
바보 같은 질문이라면 사과드립니다.하지만 몇 가지 프로젝트를 만들 수 있도록 BeautifulSoup 사용법을 스스로 가르쳐 봤습니다.
튜토리얼 : https://www.youtube.com/watch?v=5GzVNi0oTxQ로이 링크를 따라갔습니다.
그와 똑같은 코드를 따른 후에, 이것은 내가 얻는 오류이다.
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1240, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1128, in _send_request
self.endheaders(body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1079, in endheaders
self._send_output(message_body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 911, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 854, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1237, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 376, in wrap_socket
_context=self)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 747, in __init__
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 983, in do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 628, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
위의 예외를 처리하는 동안 또 다른 예외가 발생했습니다.
Traceback (most recent call last):
File "WorldCup.py", line 3, in <module>
x = urllib.request.urlopen('https://www.google.com')
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 465, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 483, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 443, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1283, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1242, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
누군가이 문제를 해결하는 방법을 알아낼 수 있습니까?
해결법
-
==============================
1.파이썬이 설치된 폴더로 이동합니다. 예를 들어 제 경우에는 응용 프로그램 폴더에 'Python 3.6'이라는 폴더 이름으로 설치됩니다. 이제 'Install Certificates.command'를 두 번 클릭하십시오. 그 후에 오류가 사라졌습니다.
파이썬이 설치된 폴더로 이동합니다. 예를 들어 제 경우에는 응용 프로그램 폴더에 'Python 3.6'이라는 폴더 이름으로 설치됩니다. 이제 'Install Certificates.command'를 두 번 클릭하십시오. 그 후에 오류가 사라졌습니다.
-
==============================
2.필자의 경우 SSL 인증 모듈을 사용하여 다음과 같은 인증을 "해결"했습니다.
필자의 경우 SSL 인증 모듈을 사용하여 다음과 같은 인증을 "해결"했습니다.
import ssl ssl._create_default_https_context = ssl._create_unverified_context
링크 내용을 읽으려면 다음을 사용할 수 있습니다.
urllib.request.urlopen(urllink)
from https://stackoverflow.com/questions/35569042/ssl-certificate-verify-failed-with-python3 by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 드라이브 API를 사용하여 Google 드라이브에서 빈 스프레드 시트 만들기 (0) | 2018.11.20 |
---|---|
[PYTHON] Python에서 저렴한 예외 처리 기능을 제공합니까? (0) | 2018.11.20 |
[PYTHON] numpy를 사용하는 가중 백분위 수 (0) | 2018.11.20 |
[PYTHON] 파일에서 읽은 목록의 줄 바꿈 문자 제거 [duplicate] (0) | 2018.11.20 |
[PYTHON] 대소 문자 무시 문자열에서 부분 문자열을 일치시키는 방법은 무엇입니까? (0) | 2018.11.20 |