카테고리 없음

python 보안환경에서 구동하기, SSL (UNSAFE_LEGACY_RENEGOTIATION_DISABLED) 오류를 겪고 계신가요?

작동미학 2023. 10. 27. 23:16
반응형

이 글은 폐쇄망 보안환경 하에 python 구동시 SSL 오류를 겪는 분들을 위한 글이다.

1탄의 SSL 인증서 오류 https://finai.tistory.com/16 에 이어서 이번에는  UNSAFE_LEGACY_RENEGOTIATION_DISABLED 오류를 만나는 경우이다. 필자의 경우는 폐쇄보안 환경에서 mac os를 쓸때 발견하여 조치하였다.

 

해당 오류는 Renegotiation에 문제가 있어서 패치된 이후에(TLSv1.2 과 그 이전 버전에 renegotiation이라는 것을 지원하는데 보안이슈가 발견되어 패치되었다) 그 이전 버전이 사용될때 발생하는 문제로 알려져있다. 하지만 이를 강제로 되게 하는 방법이 있다. (따라서 이 옵션을 적용하면 안전하지 못한 사이트에 접속시는 보안 문제를 발생시킬 수 있다. pypi.org에 설치를 위한 접속 정도는 괜찮아보인다.)

 

그 방법은 openssl의 설정을 바꾸는 방법이다.

 

$ cat > openssl.conf

openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
Options = UnsafeLegacyRenegotiation

 

$ export OPENSSL_CONF=/해당파일경로/openssl.cnf

 

하면 발생하던 오류가 사라진다는 것을 알 수 있다.

 

$ cat > check_pypi.py 

import requests

 

data = {'foo':'bar'}

url = 'https://pypi.com'

r = requests.post(url, data=data)

 

$ python check_pypi.py 

정상!

 

만약에 SSL_CERTIFICATE_VERIFY_FAILED 오류를 만난다면 https://finai.tistory.com/16 를 추가로 참조하자.

 

 

반응형