Webtob - WildCard & Multi

1. 다중 SSL인증서 환경 설정

1) webtbob 환경 파일을 vi로 수정 합니다.

[root@localhost ~]$ vi /usr/local/webapp/webtob/config/http.m

*VHOST
ucert_ssl  DOCROOT="/usr/local/webapp/webtob/docs/ucert/",
               PORT="443",
               * 설명 : SSL 서비스 포트 설정
               SSLFLAG="Y",
               * 설명 : SSL 서비스 사용 설정
               SSLNAME="ucertssl",
               * 설명 : 사용 할 SSL별칭 설정
               HostName="www.ucert.co.kr"

korsec_ssl  DOCROOT="/usr/local/webapp/webtob/docs/korsec/",
               PORT="444",
               * 설명 : SSL 서비스 포트 설정
               SSLFLAG="Y",
               * 설명 : SSL 서비스 사용 설정
               SSLNAME="ucertssl",
               * 설명 : 사용 할 SSL별칭 설정(위의 설정과 동일하게 설정한다.)
               HostName="www.korsec.co.kr"

*SSL
ucertssl  CertificateFile = "/usr/local/webtob/config/ucert/www.ucert.co.kr.crt",
               * 설명 : 인증서 경로 설정
               CertificateKeyFile = "/usr/local/webtob/config/ucert/www.ucert.co.kr.key",
               * 설명 : 개인키 경로 설정
               CertificateChainFile = "/usr/local/webtob/config/ucert/www.ucert.co.kr.ca-bundle",
               * 설명 : 체인 인증서 경로 설정
               CACertificateFile = "/usr/local/webtob/config/ucert/www.korsec.co.kr.root-bundle",
               * 설명 : 루트 인증서 경로 설정
               PassPhraseDialog="exec:/root/webtob/ssl/pass.sh"
                * 설명 : 재시작시 비밀번호 입력없이 재시작이 가능하게 한다.

*SVRGROUP
htmlg SVRTYPE = HTML
ucert_svr SVRTYPE = JSV, VhostName = "ucert, ucert_ssl"

korsec_svr SVRTYPE = JSV, VhostName = "korsec, korsec_ssl"

*SERVER
html SVGNAME = htmlg, MinProc = 50, MaxProc = 50, ASQCount = 5
tving_mb SVGNAME = ucert_svr, MinProc = 100, MaxProc = 200, ASQCount = 5, SvrChkTime=30

*URI
uriexact Uri = "/", MATCH = "exact", Svrtype = HTML, SvrName = html
uri1 Uri = "/", Svrtype = JSV, SvrName = ucert, VhostName = ucert
uri2 Uri = "/", Svrtype = JSV, SvrName = ucert, VhostName = ucert_ssl
uri3 Uri = "/", Svrtype = JSV, SvrName = korsec, VhostName = korsec
uri4 Uri = "/", Svrtype = JSV, SvrName = korsec, VhostName = korsec_ssl
* 설명 : JEUS연동 설정

*LOGGING
log1 Format = "DEFAULT", FileName = "/webtob/log/ucert/access.log_%M%%D%%Y%", Option = "sync"
log2 Format = "ERROR", FileName = "/webtob/log/ucert/error.log_%M%%D%%Y%", Option = "sync"
log3 Format = "%h %l %u %t \"%r\" %>s %b \ %D", FileName = "/webtob/log/ucert/access.log_%M%%D%%Y%", Option = "sync"
log4 Format = "SYSLOG", FileName = "/webtob/log/system.log_%M%%D%%Y%", Option = "sync"
log5 Format = "DEFAULT", FileName = "/webtob/log/korsec/access.log_%M%%D%%Y%", Option = "sync"
log6 Format = "ERROR", FileName = "/webtob/log/korsec/error.log_%M%%D%%Y%", Option = "sync"

*ERRORDOCUMENT
503 status = 503, url = "/503.html"
404 status = 404, url = "/404.html"
403 status = 403, url = "/403.html"
:wq!
2. 패스워드 쉘 생성하기.

1) 패스워드를 자동으로 입력하게 하는 쉘을 생성합니다.

[root@localhost ssl]$ vi pass.sh
#!bin/sh
echo password

wq!
* 설명: echo “password” 를 입력하도록 한다.
3. 서비스 재기동

1) 환경 파일을 컴파일 후 재기동합니다.

[root@localhost ~]$ wscfl –i http.m
* 설명 : 환경파일 컴파일

urrent configuration:
Number of client handler(HTH) = 1
Supported maximum user per node = 4047
Supported maximum user per handler = 4047
Successfully created the configuration file (/root/webtob/config/wsconfig) for node UCERT.
The host name of the running machine is UCERT.

[root@localhost webtob]# wsdown
* 설명: 서버를 종료하도록 한다.

Do you really want to shut down WebtoB? (y : n): y

WSDOWN for node(localhost) is starting:
WSDOWN: SERVER(html:1) downed: Fri Jan 1 00:00:00 2016
WSDOWN: SERVER(html:0) downed: Fri Jan 1 00:00:00 2016
WSDOWN: SERVER(cgi:11) downed: Fri Jan 1 00:00:00 2016
WSDOWN: SERVER(ssi:21) downed: Fri Jan 1 00:00:00 2016
WSDOWN: SERVER(ssi:20) downed: Fri Jan 1 00:00:00 2016
WSDOWN: SERVER(cgi:10) downed: Fri Jan 1 00:00:00 2016
WSDOWN: HTL downed: Fri Jan 1 00:00:00 2016
WSDOWN: HTH downed: Fri Jan 1 00:00:00 2016
WSDOWN: WSM downed: Fri Jan 1 00:00:00 2016

[root@localhost webtob]# wsboot
* 설명: 서버를 시작하도록 한다.

Booting WebtoB on node (UCERT)
Welcome to WebtoB demo system. It will expire on 2099/12/31
Today is 2016/06/07
Starting WSM at Fri Jan 1 00:00:00 2016
Starting HTL at Fri Jan 1 00:00:00 2016
Starting HTH at Fri Jan 1 00:00:00 2016
Current WebtoB Configuration:
Number of client handlers (HTH) = 1
Supported maximum user per node = 4047
Supported maximum user per handler = 4047
Starting SVR(htmls) at Fri Jan 1 00:00:00 2016
Starting SVR(htmls) at Fri Jan 1 00:00:00 2016
Starting SVR(cgis) at Fri Jan 1 00:00:00 2016
Starting SVR(cgis) at Fri Jan 1 00:00:00 2016
Starting SVR(ssis) at Fri Jan 1 00:00:00 2016
Starting SVR(ssis) at Fri Jan 1 00:00:00 2016

4. 포트 확인
[root@localhost ~]# netstat -na | grep httpd
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
5. 인증서 확인

1) 443포트 Listen 된 상태에서 아래의 명령어를 사용하여 로컬에서 인증서를 확인 합니다.

[root@localhost ~]#echo "" | openssl s_client -connect localhost:443 | openssl x509 -noout -dates

depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
notBefore=Jan 1 00:24:14 2016 GMT               #인증서 시작일
notAfter=Dec 31 :38:20 2017 GMT               #인증서 만료일

설명 : 로컬에서 인증서 출력이 정상적이고 외부에서 https://[도메인]으로 브라우저 접속 시 통신이 되지 않을 경우 내부 방화벽(예. iptables), 외부 방화벽 등에 SSL포트가 Allow (또는 웹방화벽에 인증서가 설치가) 되어 있는지 확인 합니다.