SSL 3

특정 환경에서 SSL 인증서 경로검증 오류나는 경우

발단 javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. Android에서 HttpsURLConnection을 사용하다가 발생하는 예외였다. iOS에서도 잘되고, iOS Safari, Android Chrome에서도 여튼 다 접속에 문제가 없던 웹 서버인데, 유독 Android에서 프로그래밍으로 접속하면 실패하는 상황에 직면했다. Trust anchor를 못 찾는다는 오류는, 보통 “신뢰하는 루트 인증서“를 인증서 저장소에서 못 찾는 경우에 발생한다 인증서 체인 발급자 인증서 정보를 보면 (브라우저에서 주소창의 자물쇠를 누르..

IT한 것 2023.02.02

python에서 SSL/TLS의 client certificate 제출

심심하신 분들은 아래 배경 부분을 읽어보시고, 바쁘시다면 그 다음부터 보시면 됩니다. 배경 언젠가부터 웹 환경에서 SSL/TLS를 사용하는 것은 아주 일반적인 일이 되었다. PKI 구조를 활용한 안전하게 설계된 프로토콜을 이용하여 우리의 웹은 안전해졌다고 들었을 것이다. 그런데 아쉽게도 생각보다 안전하게 않을 수 있다. 바로 단일 인증만들 사용하기 때문이다. 클라이언트가 서버를 인증서하는 절차는 강제이지만, 서버가 클라이언트를 인증하는 절차는 옵션이며, 대부분의 서버가 사용하지 않는 편이다. 만일 쌍방 인증을 하려면, 사용자도 적절한 인증서가 있어야한다. 그러려면 우리가 사용하는 웹 브라우저에 사용자의 SSL/TLS 인증서를 설치, 발급 하는 방법이 마련되어야 한다. 여기서 설치는 이미 웹 브라우저에서 ..

IT한 것 2021.04.02

python으로 SSL/TLS 사용시 인증서 오류와 대처법

이미 많이들 겪고 해결해서 아는 일들이겠지만, 최근에야 겨우 파이썬을 접해보면서 정리 삼아 남겨본다. 1. self signed certificate in certificate 오류 아래와 같이 서버인증서 검증에 실패했다고 나온다. File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _create self.do_handshake() File "..

IT한 것 2021.04.02