SSL 인증서를 아래와 같이 domain.com
과 *.domain.com
두 가지로 등록하였다.
발급받은 SSL 인증서를 로드밸런서 리스너에도 등록하였다.
Postman으로 테스트했을 때는 HTTPS 요청이 잘 작동하는 것을 확인하였다.
하지만 브라우저를 통해 접속했을 때, SSL 인증서가 적용되지 않았다는 경고가 발생한다. 이는 제대로 SSL 인증서가 등록되지 않았다는 뜻이다...
인증서 세부 정보를 확인해 보니 발급일과 만료일 모두 정상적으로 설정되어 있었다. 그런데도 왜 이런 문제가 발생했을까?
결론적으로, 인증서는 잘 발급되었고 올바르게 적용되었지만 내가 입력한 도메인 정보가 문제였다.
현재 인증서에는 domain.com
과 *.domain.com
두 도메인이 등록되어 있었다.
*.domain.com
)는 api.domain.com
과 test.domain.com
처럼 1단계 하위 도메인만 지원한다.test.api.domain.com
처럼 2단계 이상의 하위 도메인은 와일드카드 인증서로 커버되지 않는다.결국 인증서가 인식하지 못하는 도메인으로 요청을 하고 있었던 것이다.
HTTPS 연결이 안된다는 경고 메시지는 뜨지만, https://test.api.domain.com
요청은 성공적으로 이루어졌다. 이는 HTTPS 연결 과정과 인증서 검증 과정이 분리되어 있기 때문이다.
HTTPS 연결은 두 단계로 이루어진다:
❗️test.api.domain.com
에 대한 HTTPS 요청이 "연결은 가능"했던 이유는 TLS Handshake가 성공했기 때문이다.
하지만 인증서 검증 단계에서 도메인이 인증서에 포함되어 있지 않아 브라우저가 "이 도메인의 인증서는 유효하지 않다"고 판단하였다.
*.domain.com
와일드카드 인증서는 test.api.domain.com
같은 2단계 하위 도메인을 지원하지 않는다.test.api.domain.com
과 일치하지 않았다.인증서 발급 시 2단계 이상의 하위 도메인도 포함하도록 설정하였더니 브라우저 요청에서도 SSL 인증서가 정상적으로 적용되었음을 확인할 수 있었다.