아...x치겠다..
SSL 오류는 진짜 말없이 멈추고, 또 어디가 문제인지 분명하지 않아서 정말 스트레스 포인트.크아아아아아아아아아아아아아아아아아아아아아아아아
SSL 오류 종류들:
csharp
복사편집
[SSL: WRONG_VERSION_NUMBER]
[SSL: ENCRYPTED_LENGTH_TOO_LONG]
[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC]
→ 공통점: 인터넷은 연결되지만, 암호화 프로토콜(TLS/SSL)에서 handshake 실패
✅ 2️⃣ 가장 많이 해결되는 방법 (순서대로 해보자) 중간에 어디서 해결될지 나도 몰라.
🔸 (1) 환경변수 프록시 제거
python
복사편집
import os os.environ.pop("HTTPS_PROXY", None) os.environ.pop("HTTP_PROXY", None)
✅ 다시 start_radio.py 최상단에 넣는 걸 강력히 추천합니다.
🔸 (2) certifi, requests, urllib3 업데이트
bash
복사편집
pip install --upgrade certifi requests urllib3
이건 루트 인증서, TLS 버전 호환성 개선입니다.
🔸 (3) OpenSSL 업데이트 (Anaconda 사용자일 경우)
bash
복사편집
conda update openssl
✅ 매우 중요합니다. 내부적으로 Python이 사용하는 TLS 핸드쉐이크가 OpenSSL 기반입니다.
🔸 (4) 파이썬 재설치 (심각할 경우)
- 일부 시스템에서는 내장 OpenSSL이 손상되어 있는 경우가 있어요.
- 이 경우 파이썬 완전 제거 후 재설치로 해결됩니다.
✅ 3️⃣ 네트워크 환경 확인
항목해결 방법
프록시 / 방화벽 / VPN | 모두 잠시 비활성화 후 재시도해보세요 |
사내망, 공공망 사용 | ➝ 개인 핫스팟으로 테스트 |
공유기 문제 | 공유기 리부팅 or 유선 연결 시도 |
👉 다른 네트워크 (예: 모바일 핫스팟) 에서 테스트하면 문제가 확연히 보입니다.
✅ 4️⃣ 테스트 스크립트로 SSL 원인 명확히 진단
python
복사편집
import requests try: r = requests.get("https://www.googleapis.com/drive/v3/files") print("✅ SSL 테스트 통과 (정상 연결)") except requests.exceptions.SSLError as ssl_err: print(f"❌ SSL 오류 발생: {ssl_err}")
→ 이 테스트가 실패한다면 시스템 SSL 문제가 확실합니다.
✅ 5️⃣ 비상 대책 (매우 예외적 경우)
✅ requests에서 SSL 인증 무시 (⚠ 위험하므로 최후수단)
python
복사편집
requests.get(url, verify=False)
➡ 보안상 위험하므로 운영 환경에서는 권장하지 않습니다.
✅ 보너스 해결 사례 (다른 유저 경험)
- 윈도우에서 SSL: WRONG_VERSION_NUMBER 계속 발생 → 프록시 사용 안함 + certifi 재설치로 해결
- DECRYPTION_FAILED... 오류 → conda update openssl 한 번으로 해결
- 일부는 DNS 문제도 있음 → 8.8.8.8 (Google DNS) 변경으로 해결되기도 합니다.
✅ 마무리 요약: 추천 해결 순서
1️⃣ os.environ.pop() 코드 넣기
2️⃣ pip install --upgrade certifi requests urllib3
3️⃣ conda update openssl
4️⃣ 다른 네트워크 테스트
5️⃣ 그래도 안 되면 → 파이썬 재설치
728x90
'개발로그 > Python' 카테고리의 다른 글
pyinstaller 패키지가 자꾸 누락될 때, (0) | 2025.03.25 |
---|---|
pyinstaller 빌드 한 번 해보자... 준비사항 (0) | 2025.03.24 |
PyInstaller 로 .exe 만들기 간단 요약 (윈도우 기준), 경로 설정 방법 (0) | 2025.03.23 |
anaconda + python 완전히 지우는 방법. (0) | 2025.03.22 |
random.choice()와 random.shuffle()은 비슷해 보이지만 목적이 완전히 다르다 (0) | 2025.03.15 |
Preload + On-demand + Fallback 구조 (캐싱전략에 관하여, 용어설명) 메모 (0) | 2025.03.12 |
python - API 연동할 때, 인증코드를 모듈마다 넣는 이유..가 있었다.. 무식해서 그런게 아니라규..ㅠ (0) | 2025.03.11 |
구글드라이브에서 API로 파일 탐색을 할 때, 어떻게 하는게 더 효율적일까? feat ChatGPT (0) | 2025.03.11 |
댓글