요즘 SSL 인증서를 보면 Common Name에 Wildcard를 사용하는 경우가 있습니다.

대표적인 예로 https://forums.codegear.com 에 가 보면 알 수가 있습니다.


forums_codegear_com_ssl_certificate.gif






허걱!

만약 그러면 Root CA에서  일반 기업에게

Common Name을 "*.com" 이나 "*"로 발행을 해 주면

어떻게 될까 하는 쓸데(?) 없는 생각이 갑자기 들었습니다.

그래서 삽질 한번 해 봤습니다.






[테스트 절차]


1. hosts 파일에 다음과 같은 DNS 정보를 입력 시켜 놓는다.


127.0.0.1      us.www.mysite.com

127.0.0.1      kr.www.mysite.com

127.0.0.1      www.mysite.com

127.0.0.1      www2.mysite.com

127.0.0.1      mysite.com

127.0.0.1      com


2. Root CA 인증서를 만들어 신뢰할 수 있는 인증기관에 추가시켜 놓는다.


3. 각각의 domain name을 위한 인증서를 만든다.


4. 각각의 domain name용 인증서를 이용해서 웹서버(SSLServer.exe)를 구동해 놓고 웹브라우저(Google Chrome)으로 들어가 본다.


5. 경고창이 뜨는지 일일이 확인해 본다.






[시연 데모]







[테스트 결과]


  Common Name   

Site URL 

      Warning Message      

   *.www.mysite.com      

   https://us.www.mysite.com      

bypass


   https://kr.www.mysite.com

bypass

    *.mysite.com  

   https://www.mysite.com

bypass


   https://www2.mysite.com

bypass

    *.com  

   https://mysite.com

Warning Message

    *

   https://com

Warning Message






[결론]


1. Wildcard(*)는 하나의 domain label만을 뜻하지, 점(.)을 포함하는 모든 domain name 을 뜻하는 것은 아니다.

2. 웹브라우저는 Common Name의 domain label의 갯수가 2개 이상일 경우에만 제대로 된 인증서로 간주한다.

   (*.com 이나 * 과 같이 domain label이 하나 이하인 경우에는 올바른 인증서가 아닌 것으로 인식한다)

3. 그리 걱정하지 않아도 된다. Root CA가 국가 정보 기관에 CA Key file을 넘긴다면 모를까... ^^






[테스트 파일 다운로드]

ssl_certificate_warning_test.zip