AWS에 구축된 REST API를 로컬 프로젝트에서 호출하려고 보니, 아래와 같은 오류가 발생했습니다.
JavaScript나 브라우저에서는 이상없이 호출이 가능했습니다.
javax.net.ssl.SSLHandshakeException: No subject alternative DNS name matching [Domain or IP] found.
원인은 자바 서버에서 SSL 연결 오류입니다.
프로젝트에서 SSL 연결 설정을 수정하면 간단하게 해결됩니다.
JVN Arguments
에 설정된 SNIExtension
옵션을 제거합니다.
-Djsse.enableSNIExtension=false
SSL 관련 오류는 몇 가지가 있습니다.
대표적으로 인증서 오류는 아래와 같고, 보통 인증서를 갱신하거나 개발일 경우 우회하는 방법으로 처리합니다.
java.security.cert.CertificateException: No subject alternative names matching [Domain or IP] found
TLS (Transport Layer Security)
는 인터넷에서 개인 정보와 데이터 보안을 위해 설계된 프로토콜입니다.
SSL (Secure Sockets Layer)
프로토콜에서 발전된 버전입니다.
SNI
는 TLS
의 확장 표준으로 클라이언트에서 서버에 접속하면서 도메인 정보를 보내는 인증 방식입니다.
동일 서버에서 여러 도메인을 사용하면서, 특정 인증서를 지정하기 위해 사용됩니다.