python으로 자동으로 request 요청하다 보면 가끔 오류가 나서 살펴보면 같은 곳에 파라미터만 바꿔서 계속 요청중인데도 불구하고 ssl 인증서를 신뢰할 수 없다며 오류를 내뱉는다.
이런 이상한 오류들은 일일이 대응하기엔 시간이 없다.
그래서 requests.post(url=url, headers=headers, json=payload, verify=false, timeout=10)
처럼 verify와 timeout 옵션을 넣어줬다. verify=false
로 해두면 인증서를 걍 신뢰하게 하는거다. 위험부담이 있지만 보통 api 사용할 때 믿을만한 곳을 이용하기도 하고 이렇게 같은 곳에 요청해도 어떨 때는 나고 어떨 때는 안 난다면 과감히 이런 조치를 하는 것도 좋다고 생각한다.
이렇게 조치가 끝나나 했는데 다시 아래의 오류가 등장했다. 무한 반복해서 계속 등장한다.😅(필요없는 부분은 ... 처리!)
...lib/python3.10/site-packages/urllib3/connectionpool.py:1061: InsecureRequestWarning: Unverified HTTPS request is being made to host '...'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
체감상으로는 요청할 때마다 등장하는 것 같은데 괜히 이러다 문제 생기는 건 아닌가 불안해지고 기껏 속도 체크나 중간에 확인을 위해 찍어뒀던 로그들도 안 보일만큼 내 터미널 라인 설정을 훨씬 뛰어넘는 Warning이 무한정 뜨는데 이걸 해결하는 방법은 3가지가 있다!(셋 중 하나만 해도 됨!)
urllib3
을 이용해 disable하고 싶은 warning만 disable 하는 방법from urllib3.exceptions import InsecureRequestWarning
from urllib3 import disable_warnings
disable_warnings(InsecureRequestWarning)
이렇게 하면 InsecureRequestWarning은 disable 되서 내 마음을 더 이상 괴롭히지 않는다.😄
import requests
requests.packages.urllib3.disable_warnings()
이렇게 requests 모듈에서도 disable 되게 만들어 줄 수 있다! 👍
우선 최신 CA 파일을 여기서 다운받고, 아래와 같이 path를 넣어주면 된다고 한다.
requests.post(url=API_SERVER, headers=headers, data=json.dumps(data), verify='CA_PATH')
requests.get('https://github.com', verify='/path/to/certfile')
이 외에도 다른 방법들도 있는데 점점 귀찮아지는 방법들이라 나는 여기까지...
정말 시간 부족한 사람들 많을텐데 조금이나마 도움이 됐으면 좋겠다!!
Cloud Run에서 LangServe와 함께 LangChain 배포하기! (1) | 2023.12.08 |
---|---|
Your Jenkins data directory /var/lib/jenkins (AKA JENKINS_HOME) is almost full. You should act on it before it gets completely full. (0) | 2023.12.06 |
오픈소스 SecretOps Infisical (0) | 2023.11.28 |
Nextjs에 GA 적용해 유저 행동 분석하기! (1) | 2023.11.27 |
Naver Expert - 개발 외주 진행할 뻔한 후기 (2) | 2023.11.23 |
댓글 영역