ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)

·2023년 11월 14일
0

에러

목록 보기
19/24
post-thumbnail

허무해서 적어놓는다...

처음에 python -m venv venv 를 통해 가상환경을 활성화한 뒤 activate 해주었는데 smtp 를 통해 이메일 인증을 처리하려니 위와 같은 에러가 났다.

시도해본 방법

  1. 애플리케이션 > python > Install Certificates.command 더블 클릭 > Update Shell Profile.command 더블 클릭

  2. shell 에 들어가서 openurl 설정 바꿔주기 - 이 방법은 내가 딱히 url 을 여는 것이 아니었기 때문에 잘못된 방법이었다.

  3. settings.py 에서

# settings.py

import os

# 사용자 지정 CA 인증서 리스트가 포함된 파일 경로를 지정
custom_ca_bundle_path = '/path/to/custom/ca_bundle.pem'

# SSL_CA_FILE 설정을 사용하여 CA 인증서 경로 지정
os.environ['REQUESTS_CA_BUNDLE'] = custom_ca_bundle_path

아래 코드 추가해주기

물로 안 돼서 다른 방법을 찾아보았다.

이외에도
https://stackoverflow.com/questions/50236117/scraping-ssl-certificate-verify-failed-error-for-http-en-wikipedia-org
https://superuser.com/questions/1426277/ssl-sslcertverificationerror-ssl-certificate-verify-failed-certificate-verif

터미널에 pip install --upgrade certifi 하는 방법은 여러 번 해보았으나 이 또한 이미 만족했다고만 나올 뿐 해결되진 않았다... 실제로 venv/lib/python3.8/site-packages 에는 certifi 가 있었고 2023.11.14 기준 최신 버전이 업데이트 되어있었기 때문에...

문제는 생각지도 못한 곳에서 해결했다. 여러 번 certificates.command 를 눌러주었음에도 적용이 안 되는 게 이상해서 계속 venv 의 파이썬과 응용 프로그램의 파이썬을 왔다갔다 하다보니 버전 차이가 눈에 들어온 것이다.

내 기기에 설치된 응용 프로그램의 파이썬은 python3.11 인데 venv 에 설치된 파이썬은 python3.8 이었다. (python --version) 설마 싶어서 기존에 설치된 venv 를 아예 지우고 python3.11 -m venv venv 를 통해 파이썬 버전을 명시한 뒤 다시 설치해주었다.


버전 확인하고

다시 makemigrations, migrate, runserver 실행하니


오오 주님.....제대로 실행이 된다!

profile
공부 중

2개의 댓글

comment-user-thumbnail
2024년 4월 30일

애플리케이션 > python > Install Certificates.command 더블 클릭 > Update Shell Profile.command 더블 클릭
이 부분은 어디서 실행하신 건가요?

1개의 답글

관련 채용 정보