[오류] SSL Exception - SSL 인증 오류 (Feat.https)
SSL Exception (SSL 오류)
SSL 인증 오류와 해결 방법에 대해 정리를 해보려고 한다.
이 오류는 http통신이 아닌 https를 통신했을 때 발생하는 오류이다.
이 오류에 대해서 알려면, SSL개념에 대해 알아야하니
먼저 SSL 개념에 대해 간단하게 알아보자.
SSL( Secure Socket Layer )이란?
개인정보 보호, 인증, 데이터 무결성을 보장하기 위해서 Netscape가 1995년 개발했다.
SSL의 인지도가 월등히 높고 사용량이 많아서 대게 SSL/TLS를 SSL로 부르기도 한다.
https를 통한 인터넷 접속은 브라우저를 실행 중인
우리 컴퓨터가 해당 사이트의
서버와 암호화 통신을 하고 있다는 것을 의미한다.
즉,
https를 이용한 인터넷 접속은 SSL을 이용한 것이라고 보면 된다 !
🔍 발단 및 오류 원인
요즘 회사에서의 주 업무가
다른 업체 API 호출을 하여 연동 작업을 하는데,
내가 필요한 값을 조회하고(GET),
상태 등록/변경 (POST) 하는 작업을 하는 작업이다.
이 작업을 하다가 SSL 오류가 발생하였다.
해당 URL은 참고로 https:// 로 시작하는 URL이다.
하지만 설정을 다 마치고 로컬에서 서버를 실행하니,
아래와 같은 오류가 발생하여 발생 원인을 알아 보았다.
com.xxx.core.exception.XxxException: javax.net.ssl.SSLException:
Unsupported or unrecognized SSL message
위 오류는
SSL 프로토콜을 사용하여 암호화된 연결을 설정하려고 할 때
발생할 수 있다.
SSLException은
SSL 프로토콜에서 발생하는 문제를 나타내며,
일반적으로 서버 또는 클라이언트의 SSL 구성에 문제가 있는 경우 발생할 수 있다.
이 오류가 무엇인지 알아보았으니,
해당 오류를 해결하기 위한 방법을 알아보자.
🔍 SSL 인증서 오류 해결 방법
1. SSL 인증서 확인
서버의 SSL 인증서가 올바르게 설정되어 있는지 확인해야 합니다.
만약 인증서가 만료되었거나 신뢰할 수 없는 인증서인 경우,
SSLException이 발생할 수 있습니다.
2. 프로토콜 버전 일치
서버와 클라이언트 간에 SSL 프로토콜 버전이 일치하는지 확인해야 합니다.
서버가 TLS 1.2를 지원하는데 클라이언트가 낮은 버전을 사용하거나
그 반대의 경우에도 SSLException이 발생할 수 있습니다.
3. 암호화 알고리즘 일치
서버와 클라이언트 간에 암호화 알고리즘이 일치하는지 확인해야 합니다.
만약 서버가 클라이언트가 지원하지 않는 암호화 알고리즘을 사용하거나 그 반대의 경우,
SSLException이 발생할 수 있습니다.
4. 네트워크 및 방화벽 설정
네트워크 연결 및 방화벽 설정을 확인하여
SSL 트래픽이 제대로 전달되고 차단되지 않도록 해야 합니다.
필요한 포트가 올바르게 열려 있고,
중간에 있는 프록시 서버나 방화벽이 SSL 연결을 올바르게 처리할 수 있도록
구성되어 있는지 확인해야 합니다.
5. SSL 설정 확인
SSL 구성 파일 또는 코드를 검토하여 올바른 설정을 사용하고 있는지 확인해야 합니다.
인증서 경로, 암호화 알고리즘, 프로토콜 버전 등의 설정이
올바르게 되어 있는지 확인해야 합니다.
위 다섯가지 방법을 참고해서 해결해보자-!
그리고 SSL과 https에 대해 간단한 개념이라도 공부를 해두면
주니어 개발자들에게 아주 유용할거라고 생각한다 (후후)
대부분 이런 오류는
SSL 인증서 만료거나,
등록 자체가 안되어있을
확률이 제일 높기때문에
이 부분을 먼저 확인해보는것이 제일 좋다 !
😎