SSL 인증서를 적용했는데 안했대...

호기성세균·약 15시간 전
0

트러블슈팅

목록 보기
20/20
post-thumbnail

📌 문제 파악

SSL 인증서를 아래와 같이 domain.com*.domain.com 두 가지로 등록하였다.

발급받은 SSL 인증서를 로드밸런서 리스너에도 등록하였다.

Postman으로 테스트했을 때는 HTTPS 요청이 잘 작동하는 것을 확인하였다.

하지만 브라우저를 통해 접속했을 때, SSL 인증서가 적용되지 않았다는 경고가 발생한다. 이는 제대로 SSL 인증서가 등록되지 않았다는 뜻이다...

인증서 세부 정보를 확인해 보니 발급일과 만료일 모두 정상적으로 설정되어 있었다. 그런데도 왜 이런 문제가 발생했을까?


📌 원인 파악

결론적으로, 인증서는 잘 발급되었고 올바르게 적용되었지만 내가 입력한 도메인 정보가 문제였다.
현재 인증서에는 domain.com*.domain.com 두 도메인이 등록되어 있었다.

  • 와일드카드 인증서(*.domain.com)api.domain.comtest.domain.com처럼 1단계 하위 도메인만 지원한다.
  • 그러나 test.api.domain.com처럼 2단계 이상의 하위 도메인은 와일드카드 인증서로 커버되지 않는다.

결국 인증서가 인식하지 못하는 도메인으로 요청을 하고 있었던 것이다.


💡 그런데 왜 HTTPS 요청은 성공했을까?

HTTPS 연결이 안된다는 경고 메시지는 뜨지만, https://test.api.domain.com 요청은 성공적으로 이루어졌다. 이는 HTTPS 연결 과정과 인증서 검증 과정이 분리되어 있기 때문이다.


💡 HTTPS 요청과 인증서 검증의 차이

HTTPS 연결은 두 단계로 이루어진다:

  1. TLS Handshake (연결)
    클라이언트(브라우저)와 서버 간에 암호화된 연결을 설정한다. 서버가 HTTPS 트래픽을 처리할 준비가 되어 있으면 이 연결은 성공한다.
  2. 인증서 검증
    클라이언트가 서버에서 제공한 SSL 인증서가 신뢰할 수 있는지 확인한다.

❗️test.api.domain.com에 대한 HTTPS 요청이 "연결은 가능"했던 이유는 TLS Handshake가 성공했기 때문이다.
하지만 인증서 검증 단계에서 도메인이 인증서에 포함되어 있지 않아 브라우저가 "이 도메인의 인증서는 유효하지 않다"고 판단하였다.


💡 왜 연결은 가능한가?

1. 와일드카드 인증서의 한계

  • *.domain.com 와일드카드 인증서는 test.api.domain.com 같은 2단계 하위 도메인을 지원하지 않는다.
  • 그러나 서버는 HTTPS 트래픽을 처리할 준비가 되어 있으므로 요청 자체는 수락한다.

2. SSL/TLS의 구조

  • TLS Handshake는 암호화된 연결을 설정할 뿐, 인증서가 유효한지 여부는 TLS Handshake 이후 단계에서 검증된다.
  • 서버는 요청을 받기 위한 준비가 되어 있으면 일단 연결을 허용한다.
    이후 인증서 검증에서 신뢰 문제가 발생하여 브라우저가 경고를 표시하는 것이다.

📌 결론

  • 클라이언트는 HTTPS 요청을 통해 서버에 연결을 성공했지만:
    • 인증서의 CNtest.api.domain.com과 일치하지 않았다.
  • 이로 인해 브라우저는 "SSL 인증서가 신뢰되지 않는다"는 오류 메시지를 표시하였다.

📌 해결

인증서 발급 시 2단계 이상의 하위 도메인도 포함하도록 설정하였더니 브라우저 요청에서도 SSL 인증서가 정상적으로 적용되었음을 확인할 수 있었다.

profile
공부...열심히...

0개의 댓글