AWS

[OpenSSL]requests.exceptions.SSLError

easysheep 2023. 10. 12. 13:11

1. 오류 발생

환경

os : ubuntu 20.04 LTS

Python : 3.11.6

openssl version : 1.1.1w

라이브러리:

certifi==2023.7.22
charset-normalizer==3.3.0
greenlet==3.0.0
idna==3.4
numpy==1.26.0
pandas==2.1.1
PyMySQL==1.1.0
python-dateutil==2.8.2
pytz==2023.3.post1
requests==2.31.0
six==1.16.0
SQLAlchemy==2.0.21
typing_extensions==4.8.0
tzdata==2023.3
urllib3==2.0.6

 

코드 중 오류 부분

key_path = "/home/ubuntu/apikey/key.txt"
url = "https://apis.data.go.kr/1160100/service/GetStockSecuritiesInfoService/getStockPriceInfo"


with open(key_path,'r',encoding="UTF-8") as f:
    key = f.readline()

params = {'serviceKey' : key
        , 'numOfRows' : 10000
        , 'pageNo' : 1
        , 'resultType' : "json"
        , 'beginBasDt' : '20210101'
        }



response = requests.get(url ,params=params, verify=False)

오류 결과 마지막 부분

requests.exceptions.SSLError: HTTPSConnectionPool(host='apis.data.go.kr', port=443): Max retries exceeded with url: /1160100/service/GetStockSecuritiesInfoService/getStockPriceInfo?numOfRows=10000&pageNo=1&resultType=json&beginBasDt=20210101 (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_ILLEGAL_PARAMETER] sslv3 alert illegal parameter (_ssl.c:1006)')))

2. 해결

찾아보니 openssl 버전 문제라고 하여 수동으로 1.1.1w 버전으로 업데이트를 실시하였으나 오류..

 

원인은 python version 이 3.11.6 이어서 오류가 발생한 것이었다.

 

python version 3.9.16으로 낮추어서 시도해 보니 잘 실행되었다.