[Django]오류 <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)>

Iov Somnium
iovsomnium
Published in
Nov 9, 2020

이 글은 Django내에 PEP 467 개정안에 따라
변경된 https 통신 체크 항목에 따른 오류를 다루고 있습니다.w

목차

  • 서론
  • 오류 원인
  • 오류 해결
  • 적용 예시

서론

Django를 통한 프로젝트 중 urlopen을 통해 url을 받아 오던 도중

기존 예제의 사이트가 http에서 https로 변경되어 불러오는 경우 위와 같은 오류가 발생합니다.

오류 원인

이는 https 통신이 필요한 인증서, 호스트 명을 기본으로 체크해줘야 하는 문제로

urllib에 속한 urlopen은 영향을 받습니다.

오류 해결

ssl을 import해 urllib.request.urlopen의 context 파라미터로 넘겨주면 됩니다.

넘겨줄 시 에러가 발생하지 않고 https 주소로 요청을 보내고 응답 받을 수 있습니다.

가장 좋은 방법은 필요한 인증서와 호스트명을 넣고 올바른 SSL 통신을 하는 것이라 합니다.

적용예시

--

--

Iov Somnium
iovsomnium

개발자를 희망하는 사람 / People, hoping to become a developer