제가 알기론 포트하나당
1개 도메인만 지원되는걸로 알고있는데
막 여러가지 포트를 써서 사용하시나요?
443 444 는 기본적으로 많이쓸테고 예전에 카페24도 SSL 하면 막 포트가 만번때로 갔던기억이 있어서요
제가 알기론 포트하나당
1개 도메인만 지원되는걸로 알고있는데
막 여러가지 포트를 써서 사용하시나요?
443 444 는 기본적으로 많이쓸테고 예전에 카페24도 SSL 하면 막 포트가 만번때로 갔던기억이 있어서요
원래는 불가능하나, SNI라는 TLS 프로토콜 확장으로 가능합니다.
https://en.wikipedia.org/wiki/Server_Name_Indication
서버쪽은 아파치는 2.2.12 버전부터, nginx는 0.5.23 버전 이상부터 지원하며, 그냥 443 포트에 여러 가상 호스트를 등록하면 자동으로 활성화됩니다.
클라이언트쪽은 XP에 IE8 등 오래된 브라우저가 아니라면 거의 전부 지원합니다.
SNI가 필요한 이유는 HTTPS 연결 과정 자체에 있는데요, 일단 어느 호스트에 접속하는지 알리기 위해서는 서버에 자료를 보내야 하지만 서버에 자료를 보내기 위해서는 인증서가 필요하기에 SNI를 지원하지 않는 경우 기본 인증서가 전달되는 것입니다. 포트별로 인증서를 나눌 경우 포트 번호로 어느 호스트에 접속하는지 알 수 있게 되므로, 올바른 인증서를 보낼수 있는 것입니다.
이 한계점을 TLS 핸드셰이크 과정에서 접속 호스트를 보내 해결하는 것이 SNI입니다.
아파치 2.2.15 버전입니다.
<VirtualHost abc.co.kr:443>
NameVirtualHost abc.co.kr:443
DocumentRoot /home/abc/www/
ServerName abc.co.kr
SSLEngine on
SSLCertificateFile /home/ssl/2017/www_abc_co_kr.crt
SSLCertificateKeyFile /home/ssl/2017/myserver.key
SSLCACertificateFile /home/ssl/2017/www_abc_co_kr.ca-bundle
</VirtualHost>
<VirtualHost qqqqqq.com:443>
DocumentRoot /home2/qqqqqq/www/
ServerName qqqqqq.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/qqqqqq.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/qqqqqq.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/qqqqqq.com/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/qqqqqq.com/fullchain.pem
</VirtualHost>
이렇게 사용중인데
abc 껄 빼면 아래 SSL 이 작동하는데.
자꾸 위에 abc.co.kr 사이트가 우선되는것 같습니다.
Let's Encrypt는 인증서 하나에 여러 도메인을 연결할 수 있기 때문에 SNI를 지원하지 않는 브라우저에서도 문제가 없습니다. 같은 IP, 같은 포트에 최대 100개까지 도메인을 연결할 수 있어요.
SAN이라는 기능인데, 같은 기능을 유료인증서에 넣으려면 일반 인증서의 10개 가까운 바가지를 써야 하죠.
아.. 한서버에는 동일 포트의 SSL설치가 불가능 하군요.. 배워갑니다...
저는 클라우드플레어 SSL을 사용하거나 LET'S ENCRYPT 만 사용해보고 직접 설치는 안해봐서
처음듣는 정보네요