티스토리 뷰

728x90
반응형

 포스팅은 JEUS - WebtOb 구간암호화 설정(SSL 통신)에 대해 알아보겠습니다.


 

1. JEUS-WebtoB 구간 암호화

JEUS-WebtoB가 외부/내부로 분리되어 평문 통신하는 경우에 발생할 수 있는 보안상의 문제를 방지하기 위하여 SSL 연결을 지원하는 기능이 추가되었습니다.

WebtoB가 방화벽 밖에 있는 경우에 사용을 권장하며, 사용하는 암호화 알고리즘의 속도에 따라 WebtoB JEUS 사이의 통신 성능에 영향이 있습니다. disable-pipe false인 경우에는 SSL 이 필요 없으므로 지원하지 않습니다. (내장 WebtoB 사용 불가)

 

2. 사용 가능 버전

JEUS 6.0 (Fix#9), WebtoB 4.1 SP6 Fix#1(B232.2.0) 이상에서 사용 가능합니다. (WebtoB 4.1.6.0 부터 기능추가 되었으나, 4.1.6.1 패치 후 사용 권고합니다)

  

3. 설정 시 필요파일 및 수정 파일

공인인증서 또는 사설인증서가 필요하며, 인증서 파일에 대한 keystore 파일이 필요합니다.  keysotre 파일 생성 방법은 아래에서 확인 가능합니다.

설정 수정파일은 WebtoB 설정 관련 파일인 http.m. 파일과 WEBMain.xm 파일 입니다.

    

4. 설정 방법

4.1 인증서 준비

공인인증서, 사설인증서 둘 다 사용이 가능합니다.

공인인증서는 발급기관에서 발급 후 진행가능하며, 사설인증서는 아래와 같은 방법으로 생성합니다.

WebtoB 설치계정에서 다음과 같이 실행 합니다.

[tmaxi7:/tmax/webtob/config]wbssl req -x509 -nodes -config $WEBTOBDIR/ssl/wbssl.cnf -newkey rsa:2048 -new -keyout newcert.pem -out newcert.pem -days 9999

Generating a 2048 bit RSA private key

.....+++

........+++

writing new private key to 'newcert.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company) [Internet Widgits Pty Ltd]:

Organizational Unit Name (eg, section) []:

Common Name (e.g. server FQDN or YOUR name) []:localhost

Email Address []:

- x509 : 사설인증서 생성

- nodes : 인증서 암호 없이 생성 가능.

- rsa:2048 : 2048bit로 인증서 생성

- days 9999 : 인증서 기한을 9999일로 생성(기본값은 365 1)

 

 

4.2 pme -> der 인증서 변환

 CertificateFile에 설정하는 인증서 파일을 아래와 같은 방법으로 변환합니다.

wbssl x509 -in <pem 인증서이름> -outform DER -out <DER로 변경될 인증서이름>

ex) wbssl x509 -in newcert.pem -outform DER -out newcert.der

 

 

4.3 client keystore server 인증서 등록

Keystore password를 입력, y 입력 하여 keystore 파일을 아래와 같은 방법으로 생성합니다.

생성 후 JEUS서버의 $JEUS_HOME/config/`hostname` 아래에 위치시켜 줍니다.

keytool -import -keystore <생성될 keystore파일명> -file <DER 인증서 이름>

ex) [tmaxi7:/tmax/webtob/config]keytool -import -keystore keystore -file newcert.der

Enter keystore password:

Re-enter new password:

Owner: CN=localhost, O=Internet Widgits Pty Ltd, ST=Some-State, C=AU

Issuer: CN=localhost, O=Internet Widgits Pty Ltd, ST=Some-State, C=AU

Serial number: e353b9a35546f3c4

Valid from: 4/23/14 2:41 PM until: 9/7/41 2:41 PM

Certificate fingerprints:

         MD5:  3C:72:E2:DD:25:E3:E8:5F:3A:89:98:72:7C:B3:0D:5F

         SHA1: 30:10:90:26:75:0B:39:74:53:50:3A:41:62:2B:19:00:76:BC:93:35

Trust this certificate? [no]:  y

Certificate was added to keystore

  

4.4 WebtoB 설정 수정

설정 수정 전 config 파일 백업을 진행합니다. Ex) cp -p http.m http.m.20140423

Webtob 설정 파일에 JSVSSL을 사용하기 위해 아래와 같이 설정 추가 및 SSL 설정을 합니다.

JSVPORT와는 다른 port 로 설정해야 합니다. 둘 다 설정하여 사용가능하며, 한가지만 설정해도 무방합니다.

*DOMAIN

webtob1

 

*NODE

tmax           WEBTOBDIR="/tmax/webtob",

                JSVSSLPORT = 9900,

                JSVSSLFLAG=Y,

                JSVSSLNAME="ssl"

 

*SSL

ssl             CertificateFile = "/tmax/webtob/config/newcert.pem",

                CertificateKeyFile = "/tmax/webtob/config/newcert.pem",

                     CACertificateFile  = "/tmax/webtob/config/newcert.pem"

 

4.5 JEUS 설정 수정

설정 수정 전 cofing 파일 백업을 진행합니다. Ex) cp –p WEBMain.xml WEBMain.xml.20140423

<webtob-listener>

<listener-id>webtob1</listener-id>

<port>9900</port>

<output-buffer-size>8192</output-buffer-size>

<thread-pool>

<min>10</min>

<max>10</max>

<step>1</step>

<max-idle-time>30000</max-idle-time>

</thread-pool>

<webtob-address>servername</webtob-address>

<disable-pipe>true</disable-pipe>

<registration-id>MyGroup</registration-id>

<secure>

<trust-store-file-path>keystore</trust-store-file-path>

  <trust-store-file-password>{AES}3H/O+RXusceOPHqx7RpVscDzIgi/oqp9YIE9JefuaEY=</trust-store-file-password>

</secure>

</webtob-listener>

* trust-store-file-path

절대 경로, 상대 경로 모두 허용되며, 상대 경로의 경우, ${JEUS_HOME}/config/${NODE_NAME}을 기준으로 파일을 찾습니다.

위의 예제는 상대경로로 설정하였으며, 파일의 위치는 ${JEUS_HOME}/config/${NODE_NAME}/keystore 입니다.

 

5. JEUS/WebtoB 연동 확인

webtob wsadmin에서 st –p 정보 확인 시 pid 앞부분에 SSL표시로 JSVPORT SSL로 연결되었음을 확인 가능합니다.

$$7 tmaxi7 (wsadm) [2014/04/23:16:47:33]: st -p

HTH 0(16646242): RDY

   ---------------------------------------------------------------------------

   svr_name   svgname     spr_no(pid)  status     count    avg(rt)  clid svc

   ---------------------------------------------------------------------------

   html       htmlg         0(15205064)   RDY         0   0.0000( 0)   -1 -

   html       htmlg         1(51249200)   RDY         0   0.0000( 0)   -1 -

   MyGroup    jsvg         10(SSL   9)   RDY         0   0.0000( 0)   -1 -

                0 jengineid(sdtech_servlet_engine1)

   MyGroup    jsvg         18(SSL   4)   RDY         0   0.0000( 0)   -1 -

                0 jengineid(sdtech_servlet_engine1)

   MyGroup    jsvg         19(SSL   3)   RDY         0   0.0000( 0)   -1 -

                    0 jengineid(sdtech_servlet_engine1)

 

WebtoB에 SSL 인증서를 반영해 본 경험은 엔지니어들에게 많이 있을 것입니다. 다만, JEUS - WebtoB 사이의 구간 역시 외부 진입이 가능하다면 정보를 후킹해 갈 수 있다는 사실을 인지해야하며 위와 같은 방법으로 보다 보안에 철저히 대비 할 수 있을 것입니다.

고맙습니다.

728x90
반응형

'④ 미들웨어 > ⓙ JEUS' 카테고리의 다른 글

[JEUS] DB 누수 확인 방법  (0) 2018.08.12
[JEUS7] JPA Deploy 가이드  (0) 2018.08.11
[JEUS7] javamelody 사용 가이드  (0) 2018.08.05
[JEUS7] 이중화 테스트 가이드  (0) 2018.08.04
[JEUS6] XML 사용 가이드  (0) 2018.08.02