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

호기성세균·2024년 12월 26일
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. HTTPS 연결과 인증서 검증의 차이

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

  • TLS 핸드셰이크 (연결 설정) :
    클라이언트와 서버 간의 암호화된 연결을 설정하는 단계이다.
    이 단계에서 서버는 클라이언트에게 인증서를 전달하고, 클라이언트와 서버는 암호화 키를 교환하여 안전한 통신 채널을 생성한다.
    • 서버가 HTTPS 요청을 처리할 준비가 되어 있으면 TLS 핸드셰이크 성공
    • 핸드셰이크는 "암호화된 연결을 설정하는 것"이 주된 목적이며, 인증서의 유효성 검증은 이후 단계에서 처리
  • 인증서 검증 :
    클라이언트는 서버가 제공한 SSL 인증서의 유효성을 검증한다.
    • 인증서의 발급자가 신뢰할 수 있는 CA인지?
    • 인증서의 만료일이 유효한지?
    • 접속 중인 도메인과 인증서의 CN이 일치하는지?

📌 결론

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

📌 해결

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

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

0개의 댓글

관련 채용 정보