웹서버에 다른 포트번호로 도메인 추가하기

2017. 8. 24. 07:00



아파치 - 다른 포트번호를 사용하는 도메인 추가하기



기존 웹서버에(IBM HTTP) SSL인증서를 설치하고 잘 사용하고 있었는데, 기존 도메인은 유지하고 별도의 도메인을 사용해야 할 일이 생겼다. 


같은 포트로 서로 다른 도메인을 사용하는건 가능하지만, 

서로 다른 인증서를 같은 포트로 사용하는건 불가능하다는 엔지니어의 의견을 들었다. 


서로 다른 도메인용 인증서를 사용하려면 

1) IP를 별도로 사용하거나, 

2) 포트를 다르게 주던가, 

3) 멀티도메인용 인증서를 별도로 구매해서 사용하면 된단다. 


이 중에서 2번 포트 번호를 달리해서 SSL 인증서를 사용하는 도메인을 추가하기로 했다. 



작업내용


- 기존 도메인 www.abc.co.kr 이 사용하던 서버에 www.def.co.kr 추가 설치하기 

- SSL인증서는 acb.co.kr 용과 def.co.kr 용 별도 발급

- abc.co.kr은 443포트, def.co.kr은 444 포트를 사용하도록 설정

 



1) SSL 인증서 업로드


- 서로 다른 위치에 SSL인증서 업로드


/usr/IHS/SSL/abc/key.kdb : abc.co.kr용 인증서

/usr/IHS/SSL/def/key.kdb : def.co.kr용 인증서



2) http.conf 수정


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
    KeyFile "/usr/IHS/SSL/abc/key.kdb"
    DocumentRoot "/htdocs/abc_htdocs"
    ServerName abc.co.kr
 
    ErrorLog "|/usr/IHS/bin/rotatelogs /usr/IHS/logs/ssl_abc_error_log.%Y%m%d 86400"
    CustomLog "|/usr/IHS/bin/rotatelogs /usr/IHS/logs/ssl_abc_access_log.%Y%m%d 86400" common
    SSLEnable
    SSLProtocolDisable SSLv2 SSLv3
</VirtualHost>
 
 
Listen 444
NameVirtualHost *:444
<VirtualHost *:444>
    KeyFile "/usr/IHS/SSL/def/key.kdb"
    DocumentRoot "/htdocs/def_htdocs"
    ServerName def.co.kr
 
    ErrorLog "|/usr/IHS/bin/rotatelogs /usr/IHS/logs/ssl_def_error_log.%Y%m%d 86400"
    CustomLog "|/usr/IHS/bin/rotatelogs /usr/IHS/logs/ssl_def_access_log.%Y%m%d 86400" common
    SSLEnable
    SSLProtocolDisable SSLv2 SSLv3
</VirtualHost>
cs



3) apache 재기동



4) 명령어로 SSL인증서 유효기간 확인


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[web1:root] / > openssl s_client -connect 127.0.0.1:444 | openssl x509 -dates
 depth=2 C = US, = "thawte, Inc.", OU = Certification Services Division, 
OU = "(c) 2006 thawte, Inc. - For authorized use only"CN = thawte Primary Root CA
 verify error:num=19:self signed certificate in certificate chain
 notBefore=Jan 11 00:00:00 2017 GMT
 notAfter=Mar 12 23:59:59 2019 GMT
 -----BEGIN CERTIFICATE-----
 MIIGNzCCBR+gAwIBAgIQBnqQwEOytQonNF1mXzAjDzANBgkqhkiG9w0BAQsFADBB
 MQswCQYDVQQGEwJVUzEVMBMG
 
 
[web1:root] / > openssl s_client -connect 127.0.0.1:443 | openssl x509 -dates
 depth=2 C = US, = GeoTrust Inc.CN = GeoTrust Global CA
 verify error:num=19:self signed certificate in certificate chain
 notBefore=Nov 21 00:00:00 2016 GMT
 notAfter=Feb 20 23:59:59 2018 GMT
 -----BEGIN CERTIFICATE-----
 MIIF4jCCBMqgAwIBAgIQfNpH0Za7fQyi07ggkEFkjjANBgkqhkiG9w0BAQsFADBC
 MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMS
 UmFwaWRTU0wgU0hBMjU2IENBMB4XDTE2MTEyMTAwMDAwMFoXDTE4MDIyMDIzNTk1
cs



5) 웹브라우저에서 테스트


SSL 디폴트 포트를 쓰는 abc의 경우 https://www.abc.co.kr로 접속하면되고

def의 경우 https://www.def.co.kr:444 로 접속하면 SSL로 연결된다. 



덧. 

웹서버에서는 이렇게 설정하면 되고, 

추가로 서버보안같은 보안 프로그램이 있다면 거기서도 444포트도 허용해줘야 하고, 

방화벽이나 웹방화벽을 사용하고있다면 방화벽에서도 추가적인 작업이 필요하다. 


덧2.

WAS를 사용하는 경우 WAS에도 신규 포트에 대한 설정 작업이 필요하다. 

아래 블로그 글 참고



또루아빠 Linux, Unix , , , , ,

  1. Blog Icon
    김주형

    좋은정보 감사합니다!

    그런데 궁금한게 있습니다.

    5번에

    SSL 디폴트 포트를 쓰는 abc의 경우 https://www.abc.co.kr로 접속하면되고

    def의 경우 https://www.def.co.kr:444 로 접속하면 SSL로 연결된다.

    위에서 설정을 바꾸고 이렇게 접속하면 되는데 혹시 포트번호를 끝에 안붙이고 각 도메인별로 지정해둔 포트로 자동으로 접속이 되게끔 하려면 어디서 작업을 해야하나요??

    ex)https://www.abc.co.kr 하면 https://www.abc.co.kr:443 으로
    https://www.def.co.kr 하면 https://www.abc.co.kr:444 로 자동으로 접속되게 하고 싶어요