[17.0.0.3 and later]

SSL 構成のアウトバウンド・フィルター

アウトバウンド SSL フィルターを使用することで、ホストまたはホストおよびポートへのアウトバウンド接続に複数の SSL 構成が使用されるよう、Liberty を構成することができます。

デフォルトでは、Liberty は、インバウンド SSL 接続とアウトバウンド SSL 接続の両方にデフォルトの SSL 構成を使用します。ユーザーは、アウトバウンド・デフォルト用に 1 つの SSL 構成を作成することが可能なグローバル・アウトバウンド・デフォルトを保持するよう Liberty を構成することもできます。アウトバウンド通信のための SSL 設定の構成方法について詳しくは、アウトバウンド通信の SSL 設定の構成を参照してください。

アウトバウンド SSL フィルターは、ssl エレメント内にネストされた outboundConnection エレメントで構成されます。outboundConnection エレメントを使用して、アウトバウンド SSL 接続の宛先を示すホストまたはホストとポートを指定できます。

OutboundConnection エレメント属性

表 1. 属性、説明、およびデフォルト値
属性 説明 デフォルト値
host アウトバウンド接続の宛先ホスト。 デフォルト値はありません。ユーザーはホスト名を指定する必要があります。
port アウトバウンド接続の宛先ポート。 デフォルト値はありません。ポート属性が未構成の場合、フィルターは宛先サーバーのポートに向かうホスト名をマッチングします。
clientCertificate 接続の宛先が、クライアント証明書認証をサポートする、もしくは必要とするサーバーである場合、アウトバウンド SSL 接続はこの証明書別名を使用します。 デフォルト値はありません。属性が欠落していて、接続にクライアント証明書認証が必要な場合、Java Secure Socket Extension (JSSE) はサーバーに送信された証明書を選択します。
以下のいずれかの方法で、ホスト属性を定義します。
  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 構成は、defaultSSLConfig 構成か、もしくは sslDefault エレメントの sslRef 属性で指定された構成です。

アウトバウンド・フィルターでの競合

フィルター間に競合が存在する場合、どの 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 接続は、defaultSSLConfig のデフォルト SSL 構成を使用します。

例 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 接続は、outboundSSLSettings という、outboundSSLRef 属性で指定されたアウトバウンド・デフォルト 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