OS 운영체제 및 보안/Linux
Apache에 SSL 적용시 VirtualHost 적용하기
하얀공간
2010. 1. 22. 22:18
설정 환경 : Linux
Apache에 SSL 을 적용하게 되면 대개 www.m-sys.co.kr 이나 회원 로그인 할때만 사용을 하는데 고객의 요청으로 서브 도메인까지 SSL 적용을 해야하는 경우가 있어서 제가 사용한 방법을 글로 남깁니다.
Apache 2.0.x 이하 버젼의 경우를 먼저 하도록 하겠습니다.
일단 ssl.conf 이 파일을 찾는게 중요합니다. 대부분의 설정을 여기서 하기 때문이죠
# cd /usr/local/apache/conf <- 대부분 여기에 위치해요~
아차~ 제일 중요한 vhost.conf 에 있는 내용을 ssl.conf 로 넣어야 하니 이 작업을 먼저 하겠습니다.
# cat vhost.conf >> ssl.conf <- 이렇게 하면 vhost.conf 의 내용이 ssl.conf 제일 밑 부분으로 연결되어 추가 됩니다.
그다음 vi 를 이용하여 수정~~
# vi ssl.conf
<IfDefine SSL> <- cat 을 이용하여 vhost.conf 내용을 그냥 가져왔으니 여기와 끝을 잘 보시고 수정하셔야합니다. 맨 끝에는 </IfDefine> 이게 있어야겠죠?
.
.
.
Listen 443
NameVirtualHost 218.*.*.213:443 <- 대충 여기에 해당 서버 IP랑 Port 443 을 추가합니다.
그리고
SSLPassPhraseDialog builtin <- 수정을 하거나 주석(#) 처리해서 Server Reboot 시 패스워드를 자동으로 기입하도록 해야합니다. 아참 이부분은 Apache 시작시 패스워드를 묻지 않도록 인증서를 만들었으면 패스~~~~~~하셔도 됩니다.
요렇게... ^^
#SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh <- 이부분은 저의 블로그에 보면 Apache 에서 자동 패스워드 적용이라는 타이틀로 되어 있는걸 참고 하시길 바랍니다.
그리고 밑의 내용처럼 수정 해 주시면 됩니다.
<VirtualHost 218.*.*.213:443>
ServerAdmin webmaster@test.co.kr
DocumentRoot /usr/local/home/test
ServerName test.co.kr:443
ServerAlias test.co.kr:443
ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
ErrorLog logs/test-error_log
CustomLog logs/test-access_log combined
</VirtualHost>
<VirtualHost 218.*.*.213:443>
ServerAdmin webmaster@test.co.kr
DocumentRoot /usr/local/home/test
ServerName test.co.kr:443
ServerAlias test.co.kr:443
ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
ErrorLog logs/test-error_log
CustomLog logs/test-access_log combined
</VirtualHost>
.
.
.
.
</IfDefine> <-꼭~ 확인하세요~
이제 Apache2.0.x 이상 버젼을 하도록 하겠습니다.
뭐~ 위에 꺼와 틀린점은 ssl.conf 파일 이름과 디렉토리 위치가 틀리다는거 빼고는 다 똑같습니다.
# cd /usr/local/apache/conf/extra <- 대부분 여기에 위치해요~
아차~ 제일 중요한 httpd-vhosts.conf 에 있는 내용을 httpd-ssl.conf 로 넣어야 하니 이 작업을 먼저 하겠습니다.
# cat httpd-vhosts.conf >> httpd-ssl.conf <- 이렇게 하면 httpd-vhosts.conf 의 내용이 httpd-ssl.conf 제일 밑 부분으로 연결되어 추가 됩니다.
그다음 vi 를 이용하여 수정~~
# vi httpd-ssl.conf
<IfDefine SSL> <- cat 을 이용하여 httpd-vhosts.conf 내용을 그냥 가져왔으니 여기와 끝을 잘 보시고 수정하셔야합니다. 맨 끝에는 </IfDefine> 이게 있어야겠죠?
.
.
.
Listen 443
NameVirtualHost 218.*.*.213:443 <- 대충 여기에 해당 서버 IP랑 Port 443 을 추가합니다.
그리고
SSLPassPhraseDialog builtin <- 수정을 하거나 주석(#) 처리해서 Server Reboot 시 패스워드를 자동으로 기입하도록 해야합니다. 아참 이부분은 Apache 시작시 패스워드를 묻지 않도록 인증서를 만들었으면 패스~~~~~~하셔도 됩니다.
요렇게... ^^
#SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh <- 이부분은 저의 블로그에 보면 Apache 에서 자동 패스워드 적용이라는 타이틀로 되어 있는걸 참고 하시길 바랍니다.
그리고 밑의 내용처럼 수정 해 주시면 됩니다.
<VirtualHost 218.*.*.213:443>
ServerAdmin webmaster@test.co.kr
DocumentRoot /usr/local/home/test
ServerName test.co.kr:443
ServerAlias test.co.kr:443
ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
ErrorLog logs/test-error_log
CustomLog logs/test-access_log combined
</VirtualHost>
<VirtualHost 218.*.*.213:443>
ServerAdmin webmaster@test.co.kr
DocumentRoot /usr/local/home/test
ServerName test.co.kr:443
ServerAlias test.co.kr:443
ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
ErrorLog logs/test-error_log
CustomLog logs/test-access_log combined
</VirtualHost>
.
.
.
.
</IfDefine> <-꼭~ 확인하세요~
이상입니다.
저도 아직 수정해야 할 부분이 많이 있습니다. 혹시나 제가 적은 글에서 틀린 점이 있거나 의문사항이 있으면 댓글을 남겨주시길 바랍니다.