[Python] Python_SSL: CERTIFICATE_VERIFY_FAILED 에러
Django 프로젝트에서 SMTP를 활용한 이메일 발송 로직을 작성하신 분께서 발생한 내용에 대한 트러블 슈팅에 대한 기록을 남겨보고자 한다. 에러 로그에서는 "SSL: CERTIFICATE_VERIFY_FAILED"가 포함된 에러가 발생하고 있어서 해당 부분을 염두에 두고 시작을 하였다.
1. 구글 계정 이슈
구글 보안단계 낮추는 방법을 먼저 떠올려보았다.
다른 분들은 공유된 코드를 통해 이메일이 발송된다고 한 것에 근거, 구글 계정과 관련한 이슈일 것으로 판단하였다.
보안 수준 관련 설정을 처리하지 않아 에러가 발생한 적이 있던 것이 떠올라 해당 부분부터 찾아보았는데 이미 22년 5월말부터 해당 설정은 없어졌으며, 2단계 보안 설정 후 앱별 비밀번호를 통해 접근 시 서드파티를 사용할 수 있게 되었다.
혹시라도 보안 설정이 꼬여있어서 그런가 싶어서 새로운 구글계정을 만들어서 검증해보는 것을 먼저 말씀드렸는데 새롭게 만든 구글계정 또한 동일한 에러가 발생하는 것을 보며 구글 계정과 관련된 이슈는 아니라 판단하게 되었다.
2. 컴퓨터 관련 이슈
팀 프로젝트였기에 다른 작동이 잘되는 분들의 컴퓨터 OS와 질문자분의 OS를 확인하였다.
잘되는 분들은 다 윈도우 환경, 질문자분은 Mac이였고 파이썬 버전은 3.8이였다.
여기서 실마리를 찾을 수 있겠다 생각이 들어 Mac과 관련된 이슈가 있는지 집중적으로 구글링을 해보기 시작하였다.
그러다보니 MacOS와 파이썬 OpenSSL 라이브러리 사이의 이슈에 대해 언급하는 부분, 처리하는 부분에 대해 파이썬 이슈에서 논의되는 내용들을 확인하게 되었다.
https://bugs.python.org/issue29065
https://bugs.python.org/issue45007
"결론적으로는 파이썬 폴더에 있는 Insall Certificates를 작동시켜서 OpenSSL을 설치하니 위 이슈는 해결이 되었다."
해당 이슈는 파이썬 3.6버전부터 나온 것으로 보이고 현재 공개된 3.11 버전까지도 OS내 OpenSSL과 파이썬 내 OpenSSL 버전으로 인한 이슈들이 지속적으로 리포팅되는 것으로 보인다. 혹시라도 이후 유사한 이슈가 생긴다면 깃헙 이슈들을 보면서 처리해야될 듯 하다.
https://github.com/pyenv/pyenv/issues/2494