Liberty:SSL 구성 속성

SSL 구성에는 Liberty에서 서버 SSL 전송 계층의 동작을 제어하는 데 사용하는 속성이 포함됩니다. 이 주제에서는 SSL 구성에 사용 가능한 모든 설정을 반복합니다.

SSL 기능

서버에서 SSL을 사용하려면 SSL 기능이 server.xml 파일에 포함되어 있어야 합니다.

<featureManager>
  <feature>ssl-1.0</feature>
</featureManager>

SSL 기본값

구성된 여러 SSL 구성이 있을 수 있습니다. 둘 이상의 SSL 구성이 구성된 경우에는 sslDefault 서비스 구성을 사용하는 기본 SSL 구성을 server.xml 파일에서 지정해야 합니다.

표 1. sslDefault 요소의 속성 . 이 표에서는 sslDefault 요소의 속성을 설명합니다.
속성 설명 기본값
sslRef sslRef 속성은 기본값으로 사용할 SSL 구성의 이름을 지정합니다. 기본 SSL 구성 이름은 defaultSSLConfig입니다.
server.xml 파일의 항목은 다음과 같습니다.
<sslDefault sslRef="mySSLSettings" />

SSL 구성

SSL 구성 속성을 사용하여 사용자 요구를 충족하도록 SSL 환경을 사용자 정의할 수 있습니다. server.xml 파일에서 ssl 서버 구성 시 이러한 속성을 설정할 수 있습니다.

표 2. SSL 요소의 속성. 이 테이블은 ssl 요소의 속성을 설명합니다.
속성 설명 기본값
id id 속성은 SSL 구성 오브젝트에 고유 이름을 지정합니다. 기본값이 없으며 고유 이름을 지정해야 합니다.
keyStoreRef keyStoreRef 속성은 SSL 구성 키 저장소를 정의하는 키 저장소 서비스 오브젝트의 이름을 지정합니다. 키 저장소는 SSL 연결을 작성하는 데 필요한 키를 보유합니다. 기본값이 없으며 키 저장소 참조를 지정해야 합니다.
trustStoreRef trustStoreRef 속성은 SSL 구성 신뢰 저장소를 정의하는 키 저장소 서비스 오브젝트의 이름을 지정합니다. 신뢰 저장소는 서명 검증에 필요한 인증서를 보유합니다. trustStoreRef는 선택적 속성입니다. 참조가 누락된 경우 keyStoreRef에 의해 지정되는 키 저장소가 사용됩니다.
clientAuthentication clientAuthentication 속성은 SSL 클라이언트 인증이 필수인지 여부를 판별합니다. 기본값은 false입니다.
clientAuthenticationSupported clientAuthenticationSupported 속성은 SSL 클라이언트 인증이 지원되는지 여부를 판별합니다. 클라이언트는 클라이언트 인증서를 제공할 필요가 없습니다. clientAuthentication 속성이 true로 설정된 경우 clientAuthenticationSupported 속성 값이 겹쳐쓰여집니다. 기본값은 false입니다.
sslProtocol sslProtocol 속성은 SSL 핸드쉐이크 프로토콜을 정의합니다. 프로토콜은 SDK 종속 항목일 수 있으므로, 프로토콜을 수정할 경우 실행 중인 SDK에서 해당 값이 지원되는지 확인하십시오. 기본값은 SSL_TLSv2(IBM® JRE의 경우) 및 SSL(Oracle JRE의 경우)입니다.
securityLevel securityLevel 속성은 SSL 핸드쉐이크에 사용되는 암호 스위트 그룹을 판별합니다. 속성에는 다음 값 중 하나의 값이 있습니다.
  • HIGH (128-비트 암호 이상)
  • MEDIUM (40-비트 암호)
  • WEAK (암호화 안 된 모든 암호)
  • CUSTOM (암호 스위트 그룹이 사용자 정의된 경우).
특정 암호 목록을 사용하여 enabledCiphers 속성을 설정하면 시스템이 이 속성을 무시합니다.
기본값은 HIGH입니다.
enabledCiphers enabledCiphers 속성은 고유 암호 스위트 목록을 지정하기 위해 사용됩니다. 목록에서 개별 암호 스위트를 공백으로 구분하십시오. enabledCiphers 속성이 설정된 경우 securityLevel 속성이 무시됩니다. 기본값이 없습니다.
serverKeyAlias serverKeyAlias 속성은 키 저장소에서 SSL 구성 키로 사용할 키의 이름을 지정합니다. 이 속성은 키 저장소에 키 항목이 둘 이상 있는 경우에만 필요합니다. 키 저장소에 키 항목이 둘 이상 있고 이 속성이 키를 지정하지 않은 경우 JSSE가 키를 선택합니다. 기본값이 없습니다.
clientKeyAlias clientKeyAlias 속성은 clientAuthentication이 사용 가능한 경우 키 저장소에서 SSL 구성 키로 사용할 키의 이름을 지정합니다. 이 속성은 키 저장소에 키 항목이 둘 이상 있는 경우에만 필요합니다. 기본값이 없습니다.
참고:
  • 키 관리자는 SSL 핸드쉐이크에서 사용할 인증서 별명을 판별하는 데 사용됩니다. 키 관리자는 server.xml 파일에서 구성되지 않습니다. 키 관리자는 SDK의 보안 특성 ssl.KeyManagerFactory.algorithm에서 검색됩니다.
  • 신뢰 관리자는 SSL 핸드쉐이크에서 신뢰 의사결정을 내리는 데 사용됩니다. 신뢰 관리자는 server.xml 파일에서 구성되지 않습니다. 신뢰 관리자는 SDK의 보안 특성 ssl.TrustManagerFactory.algorithm에서 검색됩니다.
다음은 ssl 요소의 server.xml 파일에서의 구성 방법 예제입니다.
<!--  Simple ssl configuration service object. This assumes there is a keystore object named -->
<!--  defaultKeyStore and a truststore object named defaultTrustStore in the server.xml file. -->
  	<ssl id="myDefaultSSLConfig"
       		 keyStoreRef="defaultKeyStore"
       		 trustStoreRef="defaultTrustStore" />


<!--  A ssl configuration service object that enabled clientAuthentication -->
<!--  and specifies the TLS protocol be used. -->
  	<ssl id="myDefaultSSLConfig"
       		 keyStoreRef="defaultKeyStore"
       		 trustStoreRef="defaultTrustStore"
       clientAuthentication="true"
       sslProtocol="TLS" />

<!-- An SSL configuration service object that names the serverKeyAlias -->
<!-- to be used by the handshake. This assumes there is a certificate -->
<!-- called "default" in the keystore defined by keyStoreRef. -->
  	<ssl id="myDefaultSSLConfig"
       		 keyStoreRef="defaultKeyStore"
       serverKeyAlias="default" />

키 저장소 구성

keystore 구성은 키 저장소를 로드하는 데 필요한 속성으로 구성됩니다. 이 속성은 server.xml 파일의 키 저장소 서비스 구성에서 설정할 수 있습니다.

표 3. 키 저장소 요소의 속성. 이 표에는 keystore 요소의 속성이 설명되어 있습니다.
속성 설명 기본값
id id 속성은 키 저장소 오브젝트의 고유 ID를 정의합니다. 기본값이 없으며, 고유 이름을 지정해야 합니다.
location location 속성은 키 저장소 파일 이름을 지정합니다. 값은 파일의 절대 경로를 포함할 수 있습니다. 절대 경로가 제공되지 않은 경우, 코드는 ${server.config.dir}/resources/security 디렉토리에서 파일을 찾습니다. SSL 최소 구성에서 파일의 위치는 ${server.config.dir}/resources/security/key.jks로 가정합니다.
type type 속성은 키 저장소의 유형을 지정합니다. 지정한 키 저장소 유형을 실행 중인 SDK에서 지원하는지 확인하십시오. 기본값은 jks입니다.
비밀번호 password 속성은 키 저장소 파일을 로드하는 데 사용되는 비밀번호를 지정합니다. 비밀번호는 일반 텍스트로 저장하거나 인코드할 수 있습니다. 비밀번호 인코드 방법에 관한 정보는 securityUtility encode 옵션을 참조하십시오. 제공해야 합니다.
provider provider 속성은 키 저장소를 로드하는 데 사용되는 제공자를 지정합니다. 일부 키 저장소 유형에는 SDK 기본값 이외의 제공자가 필요합니다. 기본적으로 제공자가 지정되지 않습니다.
fileBased fileBased 속성은 키 저장소가 파일 기반인지 여부를 지정합니다. 기본값은 true입니다.
pollingRate 서버가 키 저장소 파일에 대한 업데이트를 확인하는 간격입니다. 500ms.
updateTrigger 서버가 키 저장소 파일을 다시 로드하도록 트리거하는 데 사용되는 메소드입니다. 서버가 변경사항에 대해 키 저장소 파일을 확인할 수 있게 하려면 polled, mbean이 키 저장소 파일을 다시 로드할 때까지 서버가 기다리게 하려면 mbean 또는 파일 모니터링을 사용 안함으로 설정하려면 disabled를 지정하십시오. disabled

updateTrigger 속성이 polled 또는 mbean으로 설정된 경우 서버에서 키 저장소 파일을 다시 로드할 수 있습니다. polled가 사용으로 설정된 경우 서버는 pollingRate 속성으로 설정된 비율을 기반으로 키 저장소 파일을 모니터하여 변경사항을 확인합니다. updateTrigger 속성이 mbean으로 설정된 경우, 서버는 WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean MBean으로부터 알림을 받을 때 키 저장소 파일을 다시 로드합니다. 파일 모니터링은 기본적으로 사용 안함으로 설정됩니다.

다음은 keystore 요소의 server.xml 파일에서의 구성 방법 예제입니다.
<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be monitored every 5 seconds -->
<!-- for updates -->
   	<keyStore id="defaultKeyStore"
           			  location="MyKeyStoreFile.jks"
           type="JKS" password="myPassword" 
           pollingRate="5s" 
           updateTrigger="polled" />

<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be reloaded when the server -->
<!-- recieves an mbean notification to do so -->
   	<keyStore id="defaultKeyStore"
           			  location="MyKeyStoreFile.jks"
           type="JKS" password="myPassword" 
           updateTrigger="mbean" />

전체 SSL 구성 예제

다음은 server.xml 파일에 있는 전체 SSL 구성 예제입니다. 이 예제에는 다음과 같은 SSL 구성이 있습니다.
  • defaultSSLSettings
  • mySSLSettings
기본적으로 SSL 구성은 defaultSSLConfig로 설정됩니다.
<featureManager>
  <feature>ssl-1.0</feature>
</featureManager>


<!-- default SSL configuration is defaultSSLSettings ->
  <sslDefault sslRef="defaultSSLSettings" />
  	<ssl id="defaultSSLSettings"
       		 keyStoreRef="defaultKeyStore"
       		 trustStoreRef="defaultTrustStore"
       		 clientAuthenticationSupported="true" />
  	<keyStore id="defaultKeyStore"
            			location="key.jks"
            			 type="JKS" password="defaultPWD" />
  	<keyStore id="defaultTrustStore"
            			 location="trust.jks"
            			 type="JKS" password="defaultPWD" />

  	<ssl id="mySSLSettings" 
       keyStoreRef="myKeyStore" 
       trustStoreRef="myTrustStore" 
       clientAuthentication="true" />
  	<keyStore id="LDAPKeyStore" 
            location="${server.config.dir}/myKey.p12" 
            type="PKCS12" 
            password="{xor}CDo9Hgw=" />    	<keyStore id="LDAPTrustStore" 
            location="${server.config.dir}/myTrust.p12" 
            type="PKCS12" 
            password="{xor}CDo9Hgw=" />  

주제의 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_ssl
파일 이름: rwlp_ssl.html