WebSphere Application Server v7.0, v8.0, v8.5 환경에서 TLS 1.2 프로토콜을 활성화하기 위한 최소 요구 사항(Fix Pack, JDK)을 확인하고, WAS, IHS, Plugin 각 계층별 필수 설정 방법을 정리합니다. 특히 플러그인 연결 시 발생하는
GSK_ERROR_SOCKET_CLOSED에러 해결법을 포함합니다.
1. 버전별 TLS 1.2 지원 현황 (Prerequisites)
TLS 1.2를 사용하려면 WAS 버전에 따른 최소 픽스팩(Fix Pack)과 JDK 버전이 충족되어야 합니다.
| WAS Version | Minimum Fix Pack | Required SDK Version |
|---|---|---|
| v7.0 | 7.0.0.23 이상 | SDK 6 SR10 FP1 이상 |
| v8.0 | 8.0.0.3 이상 | SDK 6.0.1 (J9 2.6) SR1 FP1 이상 |
| v8.5 | 8.5.0.0 (기본 지원) | SDK 6.0.1 (J9 2.6) SR2 이상 |
WAS v7.0은 Java 레벨에서는 TLS 1.2를 지원하지만, 함께 제공되는 Web Server Plugin(GSKit V7 사용)은 TLS 1.2를 지원하지 않습니다. 따라서 v7.0 환경에서 웹 서버 연동 구간까지 TLS 1.2를 적용하려면 Plugin 모듈 업그레이드 혹은 아키텍처 검토가 필요할 수 있습니다.
2. WAS 설정 (Application Server)
관리 콘솔에서 SSL 설정을 변경하고, 관리 명령(stop/sync) 수행을 위해 클라이언트 설정 파일도 함께 수정해야 합니다.
1) 관리 콘솔 설정 (QoP)
Security > SSL certificate and key management > SSL configurations 메뉴로 이동합니다. CellDefaultSSLSettings, NodeDefaultSSLSettings 등 사용 중인 모든 설정을 수정합니다.
- 설정 이름 클릭 (예: CellDefaultSSLSettings)
- 우측의 Quality of protection (QoP) settings 클릭
- Protocol 드롭다운 메뉴에서 TLSv1.2 선택
- 저장 (Save)
2) ssl.client.props 수정 (중요)
이 설정을 하지 않으면 WAS가 TLS 1.2로 전환된 후, stopNode나 syncNode 같은 관리 명령어가 구형 프로토콜로 통신을 시도하여 실패하게 됩니다.
- 대상 파일:
[PROFILE_HOME]/properties/ssl.client.props
# 파일 내 해당 라인 수정
com.ibm.ssl.protocol=TLSv1.2
3) 재기동 및 동기화
설정 적용을 위해 DMGR부터 순서대로 재기동합니다.
# 1. 노드 및 DMGR 중지
./stopNode.sh
./stopManager.sh
# 2. DMGR 기동
./startManager.sh
# 3. 노드 동기화 (수동 동기화 권장)
./syncNode.sh [Dmgr_Host] [Dmgr_SOAP_Port] -username [ID] -password [PW]
# 4. 노드 기동
./startNode.sh
3. Web Server (IHS) 설정
IBM HTTP Server의 httpd.conf 파일에서 SSL 설정을 강화합니다.
<VirtualHost *:443>
SSLEnable
# TLS 1.2 활성화
SSLProtocolEnable TLSv12
# 취약한 하위 프로토콜 비활성화
SSLProtocolDisable SSLv2 SSLv3 TLSv10 TLSv11
</VirtualHost>
4. Plugin 설정 (Troubleshooting)
WAS와 IHS를 모두 TLS 1.2로 설정했는데도 http_plugin.log에 GSK_ERROR_SOCKET_CLOSED (gsk rc = 420) 에러가 발생하며 연결이 안 될 수 있습니다. 이는 플러그인이 기본적으로 보안 수준을 엄격하게 검사하지 않아서 발생하는 호환성 문제입니다.
해결 방법: StrictSecurity 적용
plugin-cfg.xml 파일의 최상단 Config 태그에 속성을 추가해야 합니다.
<Config StrictSecurity="true">
<Log LogLevel="Error" Name="..." />
...
</Config>
StrictSecurity="true" 설정은 플러그인이 WAS와 통신할 때 TLS 프로토콜을 엄격하게 준수하도록 강제하여, TLS 1.2 핸드쉐이크 문제를 해결합니다.
5. 검증 (Verification)
openssl 명령어를 사용하여 서버가 TLS 1.2만 허용하는지 테스트합니다.
# TLS 1.2 접속 성공 확인
openssl s_client -connect [Host]:9443 -tls1_2
# TLS 1.0 접속 실패 확인 (핸드쉐이크 에러가 나야 정상)
openssl s_client -connect [Host]:9443 -tls1