Liberty에서 SSL 통신 사용

Liberty에서 SSL 통신을 사용하려면, 최소한의 SSL 구성 옵션 세트가 필요합니다. 대부분의 SSL 옵션에서 일부 키 저장소 구성 정보가 필요하다고 가정합니다.

이 태스크 정보

SSL 클라이언트 인증은 SSL 인증서를 사용하여 연결 핸드쉐이크 중에 발생합니다. SSL 핸드쉐이크는 특정 연결 보호에 대해 교섭하기 위해 SSL 프로토콜을 통해 교환되는 일련의 메시지입니다. 핸드쉐이크 중에 보안 서버는 클라이언트가 인증에 필요한 인증서 또는 인증서 체인을 되돌려 보내도록 요청합니다. Liberty에서 SSL을 사용하려면, 인증을 위한 키 저장소 정보의 코드와 함께 ssl-1.0 Liberty 기능을 구성 루트 문서 파일 server.xml에 추가하십시오.

기본적으로 구성 루트 문서 파일의 경로 및 파일 이름은 path_to_liberty/wlp/usr/servers/server_name/server.xml입니다. path_to_liberty는 운영 체제에서 Liberty가 설치된 위치이며, server_name은 서버의 이름입니다. 그러나 경로를 변경할 수 있습니다. Liberty 환경의 사용자 정의의 내용을 참조하십시오.

프로시저

  1. server.xml 파일에서 ssl-1.0 Liberty 기능을 사용으로 설정하십시오.
    <featureManager>
        <feature>ssl-1.0</feature>
    </featureManager>
    참고: 애플리케이션 보안이 필수이며 보안 정보가 보안 포트로 경로 재지정되는 경우에는 appSecurity-2.0 Liberty 기능을 server.xml 파일에 추가해야 합니다.

    ssl-1.0 기능을 사용으로 설정하는 경우 Liberty 서버는 기본 SSL 구성으로부터 SSLContext를 작성하고 SSLContext.setDefault() Java API를 호출하여 해당 SSLContext를 서버 기본값으로 설정합니다. 이 경우 Liberty 서버의 기본 SSLContext를 프로세스 기본 SSLContext로 만듭니다. Java API 호출 SSLContext.getDefault()가 작성되는 경우 이 메소드에서 Liberty SSLContext를 리턴합니다. 기본 SSLContext의 기본 소켓 팩토리가 리턴된다는 점에서 SSLSocketFactory.getDefault() Java API도 마찬가지입니다.

  2. [17.0.0.3 and later]server.xml 파일에 transportSecurity-1.0 Liberty 기능을 추가하여 SSL 통신을 사용으로 설정할 수도 있습니다.
    <featureManager>
        <feature>transportSecurity-1.0</feature>
    </featureManager>

    transportSecurity-1.0 기능은 ssl-1.0 기능을 대체하며 ssl-1.0 기능에 포함되어 있지 않은 기능을 추가합니다. 대상 호스트 및 포트에 따라 아웃바운드 SSL 호출에 SSL 구성을 사용할 수 있도록 SSL 구성에 필터를 설정하는 것은 물론 아웃바운드 기본값으로 사용할 SSL 구성을 지정할 수도 있습니다. 아웃바운드 SSL 옵션에 대한 자세한 정보는 아웃바운드 통신을 위해 SSL 설정 구성SSL 구성을 위한 아웃바운드 필터의 내용을 참조하십시오.

    transportSecurity-1.0 기능을 사용으로 설정하는 경우 Liberty 서버는 Java 보안 특성 ssl.SocketFactory.provider를 사용하는 사용자 정의 SSL 소켓 팩토리를 설정합니다. 이 보안 특성은 transportSecurity-1.0 기능을 사용으로 설정할 때 자동으로 설정됩니다. transportSecurity-1.0 기능을 사용하는 경우 프로세스 기본 SSLContext는 JSSE(Java Secure Socket Extension)의 기본 SSLContext가 됩니다. SSLContext.getDefault()를 호출하면 JSSE의 기본 컨텍스트인 SSLContext가 리턴됩니다. SSLSocketFactory.getDefault()를 호출하면 Liberty SSLContext를 사용하는 Liberty 서버 사용자 정의 소켓 팩토리 제공자에 따른 SSLSocketFactory가 리턴됩니다.

    outboundSSLRef 속성 및 outboundConnection 요소는 transportSecurity-1.0 기능이 지정되어 있는 경우에만 아웃바운드 SSL 연결에 대해 사용됩니다. ssl-1.0 기능은 지정되어 있고 transportSecurity-1.0은 지정되어 있지 않은 경우 outboundSSLRef 속성 및 outboundConnection 요소가 무시됩니다.

    참고: JDK의 특성으로 인해 ssl-1.0 기능을 transportSecurity-1.0 기능으로 변경하거나 transportSecurity-1.0 기능을 ssl-1.0 기능으로 변경하는 경우 전체 기능을 사용하려면 Liberty 서버를 다시 시작해야 합니다.
  3. 키 저장소 서비스 오브젝트 항목을 server.xml 파일에 추가하십시오. keyStore 요소는 defaultKeyStore라고 하며 키 저장소 비밀번호를 포함합니다. 비밀번호는 일반 텍스트로 입력하거나 인코드할 수 있습니다. securityUtility encode 옵션을 사용하여 비밀번호를 인코드할 수 있습니다.
    <keyStore id="defaultKeyStore" password="yourPassword" />
    최소 구성의 SAF 키 링 예제:
    <keyStore id="defaultKeyStore" location="safkeyring:///WASKeyring" 
              type="JCERACFKS" password="password" fileBased="false" 
              readOnly="true" />

    Liberty 서버에서 사용하도록 구성하기 전에 RACF® 키 링을 설정해야 합니다. 서버는 인증서를 작성하지 않고 이들을 RACF에 추가합니다.

    최소 SSL 구성의 단일 키 저장소 항목은 위치와 유형도 함께 포함하도록 확장할 수 있습니다.
    <keyStore id="defaultKeyStore" location="myKeyStore.p12" password="yourPassword" type="PKCS12"/>

    이 구성은 SSL 구성을 작성하는 데 필요한 최소한입니다. 이 구성에서 서버는 SSL 초기화 중에 존재하지 않을 경우 키 저장소 및 인증서를 작성합니다. 제공된 비밀번호는 길이가 6자 이상이어야 합니다. 키 저장소는 서버의 home/resources/security 디렉토리에 있는 key.jks라는 JKS 키 저장소라고 가정합니다. 이 파일이 존재하지 않으면 서버가 작성합니다. 서버가 키 저장소 파일을 작성하는 경우, 서버는 그 안에 인증서도 작성합니다. 인증서는 유효 기간이 365일인 자체 서명 인증서이며, 인증서 subjectDN의 CN 값은 서버를 실행 중이고 서명 알고리즘 SHA256withRSA가 있는 시스템의 호스트 이름입니다.

    참고: 집합체 제어기의 사용이 실용적이지 않은 경우(예를 들어, 한두 개의 Liberty 서버만 있는 경우) 자체 서명된 인증서를 사용하여 Liberty 멤버 서버에 연결할 수 있는 클라이언트 수를 제한할 수 있습니다. IHS 서버는 Liberty 서버 앞에 사용하는 것이 좋습니다. 여기서 CN 화이트리스트 작성과 함께 적절한 CA 서명 인증서를 사용하여 HIS에 연결할 수 있는 클라이언트를 제어할 수 있습니다. IHS와 Liberty 멤버 서버 간의 신뢰 채널은 자체 서명된 인증서를 사용하여 유지보수할 수 있습니다.

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

파일 이름: twlp_sec_ssl.html