Liberty 애플리케이션 클라이언트 컨테이너에 대해 SSL 통신 사용

Liberty 애플리케이션 클라이언트 컨테이너는 클라이언트 컨테이너가 서버와 통신할 수 있도록 일부 SSL 구성을 요구할 수 있습니다. 애플리케이션 클라이언트 컨테이너를 위한 SSL 구성은 서버가 SSL 인에이블먼트를 위해 요구하는 것과 동일한 SSL 기능 ssl-1.0의 사용을 요구합니다. 애플리케이션을 위한 구성 요소 및 속성은 서버에 대한 것과 동일합니다. 그러나 애플리케이션 클라이언트 컨테이너의 경우 이러한 값은 client.xml 파일에 지정됩니다.

이 태스크 정보

SSL 핸드쉐이크는 연결 특정 보호를 조정하기 위해 클라이언트와 서버 간에 SSL 프로토콜을 통해 교환된 일련의 메시지입니다. Liberty 애플리케이션 클라이언트 컨테이너에 대해 SSL을 사용하려면, 클라이언트가 사용하는 SSL 구성을 구성하는 데 필요한 최소 정보가 SSL 기능 ssl-1.0에 포함되어야 합니다. SSL 구성을 형성하는 데 필요한 최소 정보는 키 저장소와 비밀번호입니다.

securityUtility createSSLCertificate 명령을 사용하여 클라이언트 키 저장소를 작성하고 구성에 대한 정보를 제공할 수 있습니다. 다른 고객 정의 목적을 위해 키 저장소 및 연관된 구성을 작성할 수도 있으므로, 이 도구의 사용은 선택사항입니다.

프로시저

client.xml 파일에 키 저장소 요소를 추가하십시오. id 속성은 defaultKeyStore여야 하며 password 속성에는 키 저장소 비밀번호가 포함되어야 합니다. 비밀번호는 일반 텍스트로 입력하거나 인코드할 수 있습니다. securityUtility 인코드 옵션을 사용하여 비밀번호를 인코딩하십시오.
<keyStore id="defaultKeyStore" password="yourPassword" />

이것은 SSL 구성을 작성하는 데 필요한 최소 구성입니다. 이 구성에서 클라이언트는 SSL 초기화 중에 존재하지 않는 경우 키 저장소 및 인증서를 작성합니다. 제공된 비밀번호는 길이가 6자 이상이어야 합니다. JKS는 기본 키 저장소 유형이며 기본 키 저장소는 key.jks이고 이러한 기본값은 <client home>/resources/security 디렉토리에 있습니다.

클라이언트는 이전 구성을 사용할 경우 처음 시작할 때 defaultKeyStore를 작성하지만 클라이언트에 대해 기본 인증서를 작성하도록 하면 성능 저하가 발생합니다. 성능 저하를 피하려면 securityUtilitiy createSSLCertificate 명령을 사용하여 defaultKeyStore 구성에 사용되는 기본 키 저장소를 작성하는 것이 좋습니다.

사용자 정의 SSL 구성이 필요한 경우에는 Liberty: SSL 구성 속성을 참조하십시오.

서명자 인증서 승인
클라이언트에 서버에 대해 설정된 신뢰 관계가 없는 경우 클라이언트와의 통신은 사용자에게 프롬프트를 표시하고 서버로부터의 인증서를 승인하는지 묻습니다. 사용자가 yes로 응답하면 인증서가 승인되어 클라이언트 키 저장소 구성에 저장되고 명령이 진행됩니다. 사용자가 no를 지정하면 신뢰가 설정되지 않고 호출이 오류로 종료됩니다.
프롬프트 표시의 예는 다음과 같습니다.
*** SSL SIGNER EXCHANGE PROMPT ***
The SSL signer from target host is not found in trust store C:/liberty/workspace/build.image/wlp/usr/clients/myTestClient/resources/security/key.jks.

Here is the signer information (verify the digest value matches what is displayed at the server):
Subject DN:    CN=localhost, O=ibm, C=us
Issuer DN:     CN=localhost, O=ibm, C=us
Serial number: 1327582458
Expires:       Sun Jan 04 06:54:18 CST 2099
SHA-1 Digest:  00:6F:25:F1:78:5D:EB:00:B1:E2:99:DB:E8:D7:DF:3B:F8:E0:20:9A
Add signer to the trust store now? (y/n)
서명자를 신뢰 저장소에 추가하라는 요구에 사용자가 no를 지정하면 다음과 같은 오류 메시지를 수신할 수 있습니다.
[ERROR   ] CWPKI0022E: SSL HANDSHAKE FAILURE:  A signer with SubjectDN CN=localhost, O=ibm, C=us
sent from the target host.  The signer might need to be added to local trust store C:/liberty/workspace/build.image/wlp/usr/clients/myTestClient/resources/security/key.jks, located in SSL configuration alias defaultSSLConfig.  The extended error message from the SSL handshake exception is: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
        java.security.cert.CertPathValidatorException: The certificate issued by SubjectDN CN=localhost, O=ibm, C=us is not trusted; internal cause is:
        java.security.cert.CertPathValidatorException: Certificate chaining error
throw able: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: PKIX path building failed: java.security.cert.CertPathBuilderException
: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:

        java.security.cert.CertPathValidatorException: The certificate issued by
 SubjectDN CN=localhost, O=ibm, C=us is not trusted; internal cause is:
        java.security.cert.CertPathValidatorException: Certificate chaining error
서명자 인증서 자동 승인
클라이언트가 서명자 인증서 입력 프롬프트가 표시되는 것을 원하지 않으며 인증서 검사 없이 서버 서명자 인증서를 승인하도록 선택하는 경우 사용자는 -autoAcceptSigner 플래그를 클라이언트 컨테이너 명령행에 제공할 수 있습니다.
client run client_name --autoAcceptSigner
클라이언트 인증
클라이언트 인증이 사용되는 서버와 클라이언트가 통신하는 경우, 서버는 클라이언트를 신뢰해야 하고 클라이언트는 서버를 신뢰해야 합니다. 클라이언트는 키 저장소에 키와 개인 인증서가 있어야 합니다. securityUtility createSSLCertificate 명령을 사용하는 경우 키 저장소에는 개인 인증서가 있습니다. 클라이언트 애플리케이션 컨테이너가 통신 중인 서버는 클라이언트를 신뢰해야 하므로 클라이언트의 서명자를 서버의 신뢰 저장소에 추가해야 합니다. Java 도구 keytool을 사용하여 애플리케이션 클라이언트의 키 저장소에서 서명자를 추출하고 클라이언트의 인증서를 서버의 신뢰 저장소에 추가할 수 있습니다.

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_enable_ssl_liberty_client_container.html