본문 바로가기
Apache

가상호스트 443포트에 멀티SSL인증서 적용 , Apache 2.2.12 이상에서 SNI 적용

by 씨엔아이소프트 2018. 8. 24.
반응형

아파치 2.2.12이상 / 아파치 2.4.8 이상 버전에서는 Server Name Indication 를 지원한다.

Server Name Indication은 TLS를 이용한 핸드쉐이크의 확장 기능이라고 보면 되겠다.


SSL을 적용하기위해 여러 포트를 사용해야만 했지만 SNI를 적용하면 가상서버에서 443포트로 모두 적용이 가능하다.


몇몇 브라우져 및 기기의 접속 제한이 있지만 이를 무시할 수 있을경우 하나의 서버에서

여러사이트의 SSL(https)를 단일 443 포트로 연결할 수 있다.


 


SNI를 설정할때는 먼저 서버명의 443포트를 먼저 선언해야 고객들의 혼란을 방지 할수 있다.

아파치의 경우 커넥션이 웹서버에 도달했을때 매칭이 되는 가상호스트가 없을경우 최상위에

선언되 버츄얼호스트로 연결한다.( nginx 는 반대로 마지막에 선언된 버츄얼호스트로 작동한다 )


서버 버전이 CentOS 6.5 미만에서는 ca-certificates / nss 업데이트가 필요할 수 있다.


yum update ca-certificates nss


아파치 2.4의 경우 

단순히 443포트로 선언된 여러 가상호스트를 추가하는것만으로 세팅이 완료가 된다.


<VirtualHost *:443>
DocumentRoot /home/korsys00t/html
ServerName wp01.nayana.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/wp01.nayana.kr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/wp01.nayana.kr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/wp01.nayana.kr/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/wp01.nayana.kr/fullchain.pem
</VirtualHost>
 
<VirtualHost *:443>
DocumentRoot /free/home/enteroa/html
ServerName www.enteroa.kr
ServerAlias enteroa.kr www.enteroa.kr wp.enteroa.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/enteroa.kr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/enteroa.kr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/enteroa.kr/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/enteroa.kr/fullchain.pem
</VirtualHost>



아파치 2.2 버전은 NameVirtualHost 를 선언해야 한다.


NameVirtualHost *:443

<VirtualHost *:443>
DocumentRoot /home/korsys00t/html
ServerName wp01.nayana.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/wp01.nayana.kr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/wp01.nayana.kr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/wp01.nayana.kr/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/wp01.nayana.kr/fullchain.pem
</VirtualHost>
 
<VirtualHost *:443>
DocumentRoot /free/home/enteroa/html
ServerName www.enteroa.kr
ServerAlias enteroa.kr www.enteroa.kr wp.enteroa.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/enteroa.kr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/enteroa.kr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/enteroa.kr/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/enteroa.kr/fullchain.pem
</VirtualHost>


위와 같은 세팅만으로 여러 사이트가 443 기본 포트로 ssl 이용이 가능하다.
단  아래 조합은 브라우져에서 SNI 접속 기능이 없기 때문에 접속이 불가능 하다.
Windows XP – 인터넷 익스플로어(모든버전), 사파리
Android 2.3.7(진저브레드)을 포함한 이전 버전
BlackBerry 7.1을 포함한 이전 버전
WindowsMobile 6.5을 포함한 이전 버전
https://en.wikipedia.org/wiki/Server_Name_Indication

 

SNI 는 nginx 0.8.21 이상 / IIS 8.0 이상 역시 지원 한다.


[출처] https://www.enteroa.com/2016/03/17/server-name-indication/

반응형

'Apache' 카테고리의 다른 글

일반적인 Htaccess 301 리디렉션 규칙  (0) 2019.10.15
mod_ssl 모듈 설치 yum  (0) 2018.12.17
vsftpd 주요 설정  (0) 2018.01.22
Apache pagespeed 설치  (0) 2018.01.16
Apache rewrite 정리  (0) 2018.01.16

댓글