IT/Infra 기초

SSL(TLS) 인증서의 활용 예, 종류

Primes 2025. 1. 23. 20:07
728x90

SSL 인증서는 TLS 프로토콜을 사용한 웹 브라우저와 웹 서버 간 데이터를 암호화하여 보안 연결을 제공하는 디지털 인증서이다. 이 인증서는 HTTPS 통신에 있어 필수적이며, 웹 운영에 있어서는 필수적인 존재가 되었다.

이 SSL 인증서는 종류도 여러가지인데, 단일 / 와일드카드 / 다중 으로 나뉜다. 이에 대해 정리해보고자 한다.

 

인증서를 알아보기에 앞서 SSL(Secure Sockets Layer) 보안에 대한 개념을 간단하게 짚고 넘어가자.

 

SSL 통신 방식


SSL=TLS

최근에는 TLS 라고 하지만, 인증서에서는 TLS라고 하지 않고 SSL 인증서라고 한다. 암호화 / 인증 / 무결성 같은 당연한 얘기는 넘어가고, 개념과 구조에 대해서 파악해본다.

 

SSL은 TCP 의 3-way handshake 와 유사하게 세션을 구축하게 된다.

SSL의 특징으로는, 암호화 알고리즘을 공개키 알고리즘과 대칭키 알고리즘을 모두 사용한다는 점이다.

인증서의 암호화에는 공개키 알고리즘을 사용, 암호화 통신에는 대칭키 알고리즘을 사용한다.

 

1. Client Hello

클라이언트가 서버에 연결을 요청하고, 암호화 알고리즘과 사용 가능한 TLS 버전을 제안한다.

서버마다 최소로 설정해둔 TLS 버전이 있기 때문에, 사용 가능한 암호화 방식을 이 단계에서 파악하게 된다.

 

예로, 네이버 클라우드의 로드 밸런서는 TLS 버전을 1.1, 1.2, 1.3 을 선택 가능하고, 1.3 을 선택하여 운영 중인 로드 밸런서라면 클라이언트에 요구하는 최소 TLS 버전이 1.3 이 된다.

 

2. Server Hello

서버가 클라이언트의 요청을 수락, 암호화 방식을 선택한다. 서버 측에서 인증서를 클라이언트에 전달한다.

 

3. 서버 인증 / 키 교환

클라이언트는 서버가 보내온 인증서를 CA 인증기관을통해 검증한다. 검증이 완료되면 양측은 세션 키를 협상한다.

이 키를 통해서 데이터를 암호화한다.

 

4. 통신 시작

교환된 세션 키를 활용해 데이터를 암호화하여 안전한 암호화 통신을 시작한다. 여기서 세션 키를 사용하여 대칭키 암호화 알고리즘을 통해 암호화 통신을 수행한다.

 

 

자, 이제 클라이언트와 서버가 서로 어떻게 통신하는지를 확인하였다. 그렇다면 이제는 SSL 인증서의 개념과 실제 사용례, 종류 등에 대해 알아볼 차례다.

 

 

SSL 인증서의 활용


위와 같이 SSL 통신이 이루어질 때, 클라이언트와 서버가 서로 교환하는 인증서가 바로 SSL 인증서가 된다.

 

이 인증서는 신뢰할 수 있는 인증 기관(CA)가 발급을 하게 된다. 이 인증 기관에 대해서는 차후 다른 포스팅으로 자세히 설명하고, 이번에는 인증서에 대해서만 집중한다.

 

발급 과정은 간단하게만 보자면 다음과같다.

CSR(Certificate Signing Request)생성 > CA에 CSR 제출, 도메인 검증 > 인증 기관 검토 / 발급 > 인증서 설치

 

본 포스팅에서 알아보고자 하는 중점은 발급 과정이 아니어서, 간단하게 넘어간다.

 

 

자세하게 알아볼 것은, 실제 도메인에 SSL 인증서가 적용을 어떻게 하느냐이다.

 

일반적으로, 웹 서비스를 운영할 때 한 개의 도메인 만으로는 운영을 하지 않는다. 여러 개의 도메인을 운영하게 되는 것이 당연하다.

 

예를 들어보자.

naver.com 도메인에 대해 인증을 받는다면, blog.naver.com 에 대한 도메인도 함께 인증이 되는가?

www.naver.com  에 대한 도메인까지 1개의 인증서로 해결이 되는가?

 

이 부분에 대해 중점적으로 다루어본다. 이것은 인증서의 적용 범위에 따라 달라진다. 단일 / 다중 / 와일드카드 인증서 라는 것으로 나뉘는데, 각각 특징이 다르다.

 

 

인증서를 발급할 때, CA는 도메인의 인증을 진행하게 된다. 이 때, 도메인 이름은 정확해야 한다.

naver.com 에 대한 인증을 진행하게 된다면, CA는 일반적으로 "단일 인증서" 를 발급해서 naver.com 만 인증 가능한 인증서를 발급하게 된다.

 

그렇다면, 나머지 서브 도메인에 대한 인증은 어떻게 이루어져야 하는가?

 

먼저, 단일 인증서 부터 알아보자.

 

단일 인증서 (Single Domain SSL Certificate)

하나의 도메인에만 적용할 수 있는 인증서이다. naver.com 을 예로 들자면, www.naver.com, blog.naver.com 과 같은 하위 도메인에 대해서는 적용이 불가능하다. 이 경우에는 각각의 도메인에 대해 단일 인증서를 모두 발급하여야 한다.

 

단일 도메인을 사용하는 경우는 여러 하위 도메인을 운용할 필요가 없을 때 가격을 싸게 운용할 수 있다. 하지만, 여러 도메인에 대해 한번에 적용할 수 없는 불편함이 있다.

 

 

다중 인증서 (Multi-Domain SSL Certificate)

다중 인증서는 여러 도메인과 서브도메인을 하나의 인증서로 통합하여 운영할 수 있다.

naver.com, www.naver.com,  blog.naver.com 등 여러 하위 도메인을 하나의 인증서로 보호한다.

 

여기서는 SAN(Subject Alternative Name) 이라는 개념이 들어간다. 여러 도메인을 하나의 인증서로 통합할 수 있도록 하는 필드인데, 주요 도메인 외 서브 도메인을 여기 필드에 모두 채운다.

 

인증서 내부 구조에서 확장 필드로 포함되며, 다음과 같은 형태로 들어간다.

 

X.509 v3 Extensions:
    Subject Alternative Name:
        DNS: example.com
        DNS: http://www.example.com
        DNS: mail.example.com
        DNS: blog.example.org

 

이 SAN 필드가 포함되어 발급하는 다중 인증서는 일일히 SAN 필드에 하위 도메인을 기입해야 하며 최대 100개까지 넣을 수 있는 불편함이 따른다.

 

와일드카드 인증서 (Wildcard SSL Certificate)

많이 사용되는 형태인, 와일드카드 인증서이다. 이것은 하나의 메인 도메인과 모든 하위 도메인을 보호한다.

naver.com 을 예로 들자면, *.naver.com 의 형태로 인증서를 발급한다.

* 아스터리스크는 모든 하위 도메인을 의미한다.

 

*.naver.com 의 형태로 와일드카드 인증서를 발급받게 된다면 다중 인증서처럼 관리할 필요 없이 하위에 추가되는 모든 도메인에 인증이 적용된다. 또한, 100개 제한과 같은 부분도 따르지 않는다.

 

단, 여기서 주의해야할 점이 있다.

*.naver.com 으로 와일드카드 인증서를 발급받는다면, 메인 도메인인 naver.com 에는 적용되지 않는다는 점이다.

와일드카드 인증서는 하위 도메인만을 포함하기 때문에 메인 도메인을 보호하려면 단일 인증서를 따로 발급받아야 한다.

또는, 와일드카드 인증서에서 SAN 필드에 메인 도메인을 넣어주면 된다.

 

실제 서비스에서는 메인 도메인만을 사용하는 경우에는 하위 도메인으로 리다이렉션 되도록 설정해 적용하기도 한다.

ex) naver.com 입력 시, www.naver.com  으로 리다이렉션

 

 

 

반응형