작업 일지

[Android] Mqtt, subjectAltNames에 대한 고민

O_Gyong 2022. 12. 21.

Mqtt 통신과 SSL 인증 작업을 하면서 javax.net.ssl.SSLHandshakeException: No subjectAltNames on the certificate match

라는 에러를 마주쳤다.

 

해당 에러는 인증서의 호스트 명과 접속하려는 호스트 명이 일치하지 않을 때 발생한다고 한다.

mqttv3의 1.2.1 버전 이상부터는 MqttConnectOptions().isHttpsHostnameVerificationEnabled에 false 값을 부여하면

호스트 명이 일치하는지를 무시한다.

 

정상적으로 인증을 처리한 것이 아닌 임시방편이기 때문에 근복적인 해결이 필요했다.

ca 파일을 열어서 인증서의 호스트 명을 확인해보니 127.0.0.1로 저장되어 있었고,

접속하려는 IP와 달라서 생기는 문제가 맞았다.

인증서 분석 툴

 

 

다행히 aws에서 발급된 인증서는 호스트 명이 일치했는지 해당 에러가 발생하지 않았고,

로컬 인증서는 테스트용이라 isHttpsHostnameVerificationEnabled=false를 사용하면 될 것 같다.

댓글