[17.0.0.3 and later]

SSL 구성을 위한 아웃바운드 필터

아웃바운드 SSL 필터를 사용하여 호스트 또는 호스트 및 포트에 대한 아웃바운드 연결에 복수의 SSL 구성을 사용하도록 Liberty를 구성할 수 있습니다.

기본적으로 Liberty는 인바운드 및 아웃바운드 SSL 연결에 모두 기본 SSL 구성을 사용합니다. 사용자는 Liberty에서 하나의 SSL 구성을 아웃바운드 기본값으로 구성할 수 있도록 해주는 글로벌 아웃바운드 기본값을 보유하도록 구성할 수도 있습니다. 아웃바운드 통신을 위한 SSL 설정을 구성하는 방법에 대한 자세한 정보는 아웃바운드 통신을 위해 SSL 설정 구성의 내용을 참조하십시오.

아웃바운드 SSL 필터는 ssl 요소에 중첩되는 outboundConnection 요소에 구성됩니다. outboundConnection 요소를 사용하여 아웃바운드 SSL 연결이 향하는 위치를 나타내는 호스트 또는 호스트 및 포트를 지정할 수 있습니다.

OutboundConnection 요소 속성

표 1. 속성, 설명 및 기본값
속성 설명 기본값
host 아웃바운드 연결이 향하는 호스트입니다. 기본값은 없지만 사용자가 호스트 이름을 제공해야 합니다.
포트 아웃바운드 연결이 향하는 포트입니다. 기본값이 없습니다. 포트 속성이 구성되지 않은 경우 해당 필터는 대상 서버의 임의의 포트로 향하는 호스트 이름과 일치합니다.
clientCertificate 해당 연결이 클라이언트 인증서 인증을 지원하거나 해당 인증이 필요한 서버로 향하는 경우 아웃바운드 SSL 연결에서 이 인증서 별명을 사용합니다. 기본값이 없습니다. 해당 연결에 클라이언트 인증서 인증이 필요한 상태에서 이 속성이 누락되는 경우 JSSE(Java Secure Socket Extension)가 서버로 전송되는 인증서를 선택합니다.
다음 방법 중 하나를 사용하여 호스트 속성을 정의하십시오.
  1. 호스트 이름, 짧은 이름 또는 완전한 호스트 이름을 사용하십시오. 사용되는 이름에 관계 없이 아웃바운드 연결에 사용되는 이름과 정확히 일치해야 합니다. 아웃바운드 연결에서 호스트 짧은 이름을 사용 중인 경우 해당 필터는 짧은 이름에 대해서만 일치시킵니다.
  2. 호스트 속성에는 *(별표)를 사용할 수 있습니다. *(별표) 값을 사용하고 포트를 지정하지 않을 경우 이는 모든 아웃바운드 연결을 의미합니다. sslDefault 요소에서 outboundSSLRef 속성을 사용하여 글로벌 아웃바운드 기본값을 지정하는 경우 충돌이 발생합니다. outboundSSLRef 속성이 우선순위가 높습니다.
  3. 도메인 이름과 일치시키려면 호스트 문자열이 *.로 시작되어야 합니다. 문자열의 다른 위치에 * 값이 지정되는 경우 리터럴 *로 간주됩니다. 아웃바운드 연결은 일치시킬 도메인의 완전한 호스트 이름으로 작성되어야 합니다.

포트는 아웃바운드 연결에 사용되는 포트와 정확히 일치해야 합니다. 포트를 지정하지 않으면 지정된 호스트의 모든 포트가 필터와 일치합니다.

clientCertificate 속성은 선택사항입니다. 아웃바운드 SSL 연결이 향하는 서버에서 클라이언트 인증서를 요구하는 경우 이 속성이 사용됩니다. 서버에서 인증서를 요구하지 않는 경우에는 이 속성이 사용되지 않습니다. 서버에서 인증서를 요구하지만 인증서가 지정되지 않은 경우 해당 연결은 상위 ssl 요소에 지정된 clientKeyAlias 속성을 검색합니다. 해당 속성이 모두 구성되어 있지 않은 경우 JSSE가 연결에 사용할 인증서를 선택합니다.

아웃바운드 SSL 우선순위

아웃바운드 SSL 구성 일치 우선순위는 다움과 같습니다.
  1. 직접 참조
    특정 기능에서 사용할 SSL 구성을 직접 요청하는 경우 해당 구성이 사용됩니다.
  2. outboundConnection 필터 일치
    직접 참조를 요청하지 않는 경우 아웃바운드 호출을 outboundConnection 요소 필터와 일치시키려고 시도합니다.
  3. 아웃바운드 기본 SSL 구성
    아웃바운드 SSL 필터와 일치하는 항목이 없을 경우 outboundSSLRef 속성에 지정된 SSL 구성이 사용됩니다.
  4. 기본 SSL 구성
    구성된 아웃바운드 기본값이 존재하지 않을 경우 기본 SSL 구성이 사용됩니다. 기본 SSL 구성은 sslDefault 요소의 sslRef 속성에 지정된 구성 또는 defaultSSLConfig 구성입니다.

아웃바운드 필터 내의 충돌

필터 사이에서 충돌이 발생하는 경우 사용되는 SSL 구성을 나타내는 메시지가 로그에 기록됩니다. 이 상황은 예를 들면 둘 이상의 outboundConnection 요소에서 동일한 호스트 및 포트를 사용하는 경우에 발생할 수 있습니다.

outboundSSLRef 속성이 지정된 상태에서 호스트 값이 *이고 포트가 지정되지 않은 필터가 존재하는 경우 outboundSSLRef 속성에 지정된 구성이 사용됩니다.

구성 예제

outboundConnection 요소를 사용하려면 구성에 transportSecurity-1.0 기능을 지정해야 합니다. transportSecurity-1.0 기능을 지정하지 않을 경우 outboundConnection이 무시됩니다.
<featureManager>
    <feature>transportSecurity-1.0</feature>
</featureManager>
예제 1.
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" />
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

<ssl id="alternateSSLSettings" keyStoreRef="alternateKeyStore" trustStoreRef="alternateTrustStore" >
	<outboundConnection host=”server99.ibm.com” port=”9443” />
</ssl>
	<keyStore id="alternateKeyStore" location="${server.config.dir}/alternateServerKeyFile.jks" type="JKS" password="yourpassword" />
	<keyStore id="alternateTrustStore" location="${server.config.dir}/alternateServerTrustFile.jks" type="JKS" password="yourpassword" />

이 구성에서 아웃바운드 SSL 연결이 서버 server99.ibm.com 호스트 및 포트 9443으로 향하는 경우 alternateSSLSettings라는 SSL 구성이 사용됩니다. 다른 모든 아웃바운드 SSL 연결에는 기본 SSL 구성인 defaultSSLConfig가 사용됩니다.

예제 2.
<sslDefault outboundSSLRef=”outboundSSLSettings” />
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" >
	<outboundConnection host=”otherhost”  />
</ssl>
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

<ssl id="alternateSSLSettings" keyStoreRef="alternateKeyStore" trustStoreRef="alternateTrustStore" >
	<outboundConnection host=”server99.ibm.com” port=”8020” />
	<outboundConnection host=”server99.ibm.com” port=”9443” />
</ssl>

	<keyStore id="alternateKeyStore" location="${server.config.dir}/alternateServerKeyFile.jks" type="JKS" password="yourpassword" />
	<keyStore id="alternateTrustStore" location="${server.config.dir}/alternateServerTrustFile.jks" type="JKS" password="yourpassword" />

<ssl id="outboundSSLSettings" keyStoreRef="outboundKeyStore" trustStoreRef="outboundTrustStore" >
</ssl>
	<keyStore id="outboundKeyStore" location="${server.config.dir}/outboundKeyFile.jks" password="yourpassword" />
	<keyStore id="outboundTrustStore" location="${server.config.dir}/outboundTrustFile.jks" password="yourpassword" />

이 구성에서는 otherhost 호스트의 임의의 포트로 향하는 아웃바운드 SSL 연결에 defaultSSLConfig라는 SSL 구성이 사용됩니다. server99.ibm.com 호스트 및 포트 9443 또는 8020으로 향하는 아웃바운드 연결에는 alternateSSLSettings라는 SSL 구성이 사용됩니다. 다른 모든 아웃바운드 SSL 연결에는 outboundSSLRef 속성에 지정된 outboundSSLSettings라는 아웃바운드 기본 SSL 구성이 사용됩니다.

예제 3.
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" clientKeyAlias=”default” >
	<outboundConnection host=”server99.ibm.com” port=”9443” clientCertificate=”special” />
</ssl>

<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

이 구성에서는 아웃바운드 SSL 연결에 defaultSSLConfig라는 기본 SSL 구성이 사용됩니다. 아웃바운드 SSL 연결이 server99.ibm.com 호스트로 향하며 클라이언트 인증서가 필요한 경우 special이라는 인증서가 사용됩니다. 클라이언트 인증서를 요구하는 다른 모든 아웃바운드 연결에는 default라는 인증서가 사용됩니다.


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

파일 이름: rwlp_ssl_outbound_filter.html