제10장 WebtoB 4.1 SP5 Fix#3

내용 목차

10.1. 신규 기능
10.1.1. TLS1.2 지원(SSL Version Upgrade)
10.2. 추가 기능
10.2.1. Cpu Affinity 기능 추가
10.2.2. ReverseProxy의 SetHostHeader 옵션 추가
10.2.3. IgnoreExpect100Continue 옵션 추가
10.2.4. AccessLog Logging Time Point 개선
10.2.5. TCPGW Logging 기능 추가
10.2.6. NCPU 개선
10.2.7. 503ResponseOnSuspend 옵션 추가
10.3. 버그 패치
10.3.1. 동적 해더 파싱 오류 수정
10.3.2. 2G 이상 Logging이 안되는 오류 수정
10.3.3. CacheMaxFileSize로 인한 이미지 깨짐 오류 수정
10.3.4. Authorization이 Basic 또는 Digest가 아닐 경우 200 OK로 응답하는 오류 수정
10.3.5. ReverseProxy 사용할 때 X-Forwarded-For가 External Header로 기록하는 오류 수정
10.3.6. URI 절의 이름이 15자 이상일 경우 HTH가 비정상 종료되는 오류 수정
10.3.7. ReverseProxy의 Response에 Header만 있을 경우 다음 요청이 처리되지 않는 오류 수정
10.3.8. Event에 FD가 할당되지 않는 오류 수정
10.3.9. SSL 설정 후 Boot할 때 인증서 암호를 늦게 입력할 경우 Port가 Listen 되지 않는 오류 수정

10.1. 신규 기능

10.1.1. TLS1.2 지원(SSL Version Upgrade)

  • WBSSL의 Version Upgrade를 진행하여 TLS1.2를 지원하도록 하였다.

    WBSSL의 버전을 기존의 "WBSSL 1.0.0d"에서 "WBSSL 1.0.1c"로 Upgrade하였다.

    [예 10.1] WBSSL 변경 내용

    $>wbssl version
    WBSSL 1.0.1c 10 May 2012

    [예 10.2] TLSv1.2 Ciphers

    $>wbssl ciphers -v ALL | grep TLSv1.2
    ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
    ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
    ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
    ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
    DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
    DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
    DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
    DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
    ADH-AES256-GCM-SHA384   TLSv1.2 Kx=DH       Au=None Enc=AESGCM(256) Mac=AEAD
    ADH-AES256-SHA256       TLSv1.2 Kx=DH       Au=None Enc=AES(256)  Mac=SHA256
    ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
    ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
    ECDH-RSA-AES256-SHA384  TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
    ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
    AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
    AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
    ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
    ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
    ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
    ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
    DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(128) Mac=AEAD
    DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
    DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
    DHE-DSS-AES128-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA256
    ADH-AES128-GCM-SHA256   TLSv1.2 Kx=DH       Au=None Enc=AESGCM(128) Mac=AEAD
    ADH-AES128-SHA256       TLSv1.2 Kx=DH       Au=None Enc=AES(128)  Mac=SHA256
    ECDH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
    ECDH-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
    ECDH-RSA-AES128-SHA256  TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA256
    ECDH-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA256
    AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
    AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256
    


10.2. 추가 기능

10.2.1. Cpu Affinity 기능 추가

  • 다중 CPU를 가진 서버에 WebtoB 각 Process에 대해 사용할 CPU를 명시하는 기능을 추가하였다.

  • OS에서 Affinity를 지원해야 해당 기능을 사용할 수 있다.

    [예 10.3] Cpu Affinity 설정 방법

    *PRECEDING_COMMAND
    .wsm     command="/bin/taskset 0x00000001" # Linux
    .htl     command="/bin/execrset -c 2 -e"   # Aix
    .hth     command="/bin/psrset -e 3",       # HP-UX
             command="/bin/psrset -e 4"        # HP-UX(multiple HTH)

10.2.2. ReverseProxy의 SetHostHeader 옵션 추가

  • Internal Server로 요청을 포워딩할 때 SetHostHeader에 설정된 값을 HostHeader의 Value로 설정해서 넘기는 기능을 추가하였다.

  • SetHostHeader를 설정하지 않은 경우 이전 버전과 동일하게 ServerAddress에 설정된 값을 HostHeader의 Value로 설정해서 넘기게 된다.

    [예 10.4] SetHostHeader 설정 방법

    *REVERSE_PROXY
    reverse_proxy1    ...
                      SetHostHeader="release.tmax.co.kr",
                      ...
    

  • 관련이슈 : IMS-74020

10.2.3. IgnoreExpect100Continue 옵션 추가

  • Expect100 Continue 기능을 사용하지 않는 옵션을 추가하였다.

    [예 10.5] IgnoreExpect100continue 설정 방법

    *NODE
    nodename    ...
                Options = "IgnoreExpect100Continue" 

  • 관련이슈 : IMS-73778

10.2.4. AccessLog Logging Time Point 개선

  • JSVs, CGIs, PHPs와 동일하게 HTMLS에서 요청 처리 후 클라이언트가 응답을 모두 받아간 후 Access Log에 기록하도록 변경하였다.

  • 클라이언트가 모두 응답을 받아가지 않을 경우 Access Log에 기록하지 않으며 그 원인에 대한 내용을 Error Log에 기록한다.

10.2.5. TCPGW Logging 기능 추가

  • TCPGW로 요청이 올 경우 System Log에 기록을 하는 기능을 추가하였다.

  • 관련이슈 : IMS-75242

10.2.6. NCPU 개선

  • NCPU 정보에 SunOS, AIX, HP-UX 플랫폼에 대한 물리적 CPU의 정보를 추가하였다.

    [예 10.6] NCPU 정보

    * SunOS
    HOST NAME: tmaxs4
    HOSTID: 83B05E29
    H/W SERIAL: 2209373737
    
    PROCESSOR MODEL: sparcv9
    TOTAL SOCKETS: 1
    TOTAL CORES: 8
    CORES PER SOCKET: 8
    
    NCPUS: 8
    IPADDRESS: 192.168.1.xx 
    OPENFILES: 256/65536
    UNAME: SunOS tmaxs4 5.9 Generic_118558-25 sun4u sparc SUNW,Sun-Fire-880
    
    * HP-UX
    HOST NAME: tmaxh9
    HOSTID: 24C1CD94
    
    ENABLED CPUS: 8
    ACTIVE CPUS: 8
    ACTIVE MAX CPUS: 16
    ACTIVE PROCESSOR SETS: 1
    HYPER-THREADING: true
    
    NCPUS: 8
    IPADDRESS: 192.168.1.xx 
    OPENFILES: 63488/63488
    UNAME: HP-UX tmaxh9 B.11.31 U ia64 0616680852 무제한-사용자 라이센스
    
    * AIX
    HOST NAME: tmaxi7
    HOSTID: C0A80157
    
    ORIGINAL CPUS: 32
    MAX CPUS: 256
    SMT-THREADING: true
    SMT-THREADING BOUNDS: true
    SMT-THREADING THREAD NUMBER PER PHYSICAL CPU: 4
    EXCLUSIVE CPUS ON LINE: 0
    PHYSICAL CPUS: 8
    
    NCPUS: 32
    IPADDRESS: 192.168.1.xx 
    OPENFILES: 2097151/unlimited
    UNAME: AIX tmaxi7 1 6 00F681504C00

10.2.7. 503ResponseOnSuspend 옵션 추가

  • suspend 명령으로 서버가 Block 상태인 경우 이후 요청에 대하여 '503'으로 응답할 수 있는 옵션 추가하였다.

    • 옵션 설정을 하지 않을 경우 suspend 명령을 수행할 때 서버 상태는 Block되고 이후 요청에 대하여 Queuing된다.

    • 옵션 설정을 할 경우 suspend 명령을 수행할 때 서버 상태는 Block되고 기존의 Queuing된 요청과 이후 요청에 대하여 '503 status'를 응답한다.

  • 예제

    [예 10.7] 503ResponseOnSuspend 설정 방법

    *SERVER
    server1    ....
             Options = "503ResponseOnSuspend",
             ....

  • 관련이슈 : IMS-76862

10.3. 버그 패치

10.3.1. 동적 해더 파싱 오류 수정

  • Request에 동일한 Header가 있을 경우 하나의 Header로 파싱하는 과정에서 Header가 사라지는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-72742

10.3.2. 2G 이상 Logging이 안되는 오류 수정

  • 32bit 제품일 경우 Log 파일이 2GB 이상일 경우 더이상 Logging이 되지 않은 오류를 수정하였다.

  • 4.1.3.2 릴리즈 때는 Linux와 SunOS 플랫폼 제품만 수정하였다.

    참고

    WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-73155

10.3.3. CacheMaxFileSize로 인한 이미지 깨짐 오류 수정

  • CacheMaxFileSize 값이 HttpOutBufSize 값 보다 큰 경우 Cache된 응답 값이 변경되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP5 Fix#0 이상 WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-74231

10.3.4. Authorization이 Basic 또는 Digest가 아닐 경우 200 OK로 응답하는 오류 수정

  • Authorization Header에 Basic 또는 Digest가 아닌 경우 200 OK로 응답하는 오류를 수정하였다.

  • Authent 절을 설정하지 않아도 Authorization header를 검사하게 되며 Basic 또는 Digest가 아닐 경우 '400 status'로 응답하도록 변경하였다.

    참고

    WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-72931

10.3.5. ReverseProxy 사용할 때 X-Forwarded-For가 External Header로 기록하는 오류 수정

  • ReverseProxy를 WebtoB로 사용할 경우 Internal Server에서 X-forwarded-For Header에 WebtoB의 IP를 넣어 보내는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이상 WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-73652

10.3.6. URI 절의 이름이 15자 이상일 경우 HTH가 비정상 종료되는 오류 수정

  • URI 절(또는 EXT 절)의 이름이 15자 이상일 경우 HTH가 비정상 종료되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-73790

10.3.7. ReverseProxy의 Response에 Header만 있을 경우 다음 요청이 처리되지 않는 오류 수정

  • 같은 클라이언트가 ReverseProxy에 Header만 있는 응답을 받았을 경우 다음 Request를 보내게되면 hang이 걸리는 오류를 수정하였다.

  • Internal Server에서 Cache 응답(304 status) 또는 HEAD Method 등을 처리하여 ReverseProxy Server인 WebtoB로 응답을 보내게 되면 오류 현상이 발생한다.

    참고

    WebtoB 4.1 SP2 Fix#0 이상 WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

10.3.8. Event에 FD가 할당되지 않는 오류 수정

  • 클라이언트의 socket(fd)만 close하고 event에 등록한 것에 대한 처리를 하지 않는 오류를 수정하였다.

  • 오류가 발생할 경우 "Failed to add JSV connection to the table.", "Failed to add new client connection to the table."의 메시지가 System log에 기록된다.

    참고

    WebtoB 4.1 SP5 Fix#0 이상 WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-73196

10.3.9. SSL 설정 후 Boot할 때 인증서 암호를 늦게 입력할 경우 Port가 Listen 되지 않는 오류 수정

  • SSL이 설정된 WebtoB를 Boot한 후 암호를 늦게 입력할 경우 Port Listen이 되지 않는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP5 Fix#2 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-76710