Oracle Web Services Manager(Oracle WSM)コンポーネントは、他のOracle WSMコンポーネントにリクエストを送信し、そのコンポーネントからレスポンスを受信します。これらの通信を保護するために、Secure Sockets Layer(SSL)を使用するようにOracle WSMコンポーネントを構成できます。SSLは、最も普及している転送レベルのデータ通信プロトコルで、次の機能を提供します。
認証: 信頼できる相手との間で通信が確立されます。
機密保護: データ交換は、暗号化されます。
メッセージの完全性: データは、破損がないかチェックされます。
この章は、次の項で構成されています。
Oracle WSM Policy Manager、Oracle WSM MonitorおよびWeb Services Manager Controlは、OC4JサーバーをホストとするJ2EEアプリケーションです。したがって、Oracle WSMでは、Javaプラットフォームでサポートされるすべてのセキュリティ方法をサポートしています。Oracle HTTP ServerとOC4Jサーバーの統合方法の詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。
転送のセキュリティをどのように構成するかは、インストールしたOracle WSMパッケージと、Oracle WSMコンポーネントがどのように管理されるかによって決まります。後続の項では、Oracle WSMインストールおよびデプロイメントのタイプに基づいた、転送セキュリティの構成方法について説明します。
Oracle SOA Suiteのインストール
Oracle WSMをOracle SOA Suiteの一部としてインストールした場合、OC4Jサーバーは、Oracle Process Manager and Notification Server(OPMN)によって管理されます。HTTPSを有効にし、SSLを使用するためのOPMNの構成については、『Oracle Containers for J2EEセキュリティ・ガイド』を参照してください。
Oracle SOA Suiteのインストール時には、2つのインストール・オプションがあります。どのオプションを選択したかによって、Oracle HTTP Serverがデフォルトで有効になる場合と、ならない場合があります。
「基本」インストール・オプションを使用してOracle WSMをインストールした場合、Oracle HTTP Serverはデフォルトで有効になりません。
「拡張」インストール・オプションを使用してOracle WSMをインストールした場合、Oracle HTTP Serverはデフォルトでは有効になります。Oracle HTTP Serverを有効にするには、『Oracle HTTP Server管理者ガイド』の第10章「Oracle HTTP ServerでのSSLの有効化」を参照してください。
様々なOracle SOA Suiteのインストール・オプションの詳細は、Oracle Application Serverのインストレーション・ガイドを参照してください。
スタンドアロンOracle WSMのインストール
Oracle WSMをスタンドアロン・パッケージの一部としてインストールした場合、OC4Jサーバーがどのように管理されるかは、次のいずれのインストール・オプションを選択したかによって異なります。
「基本」スタンドアロン・インストールでは、OC4JサーバーはOPMNによって管理されません。
「拡張」スタンドアロン・インストールでは、Oracle WSMはOracle SOA Suiteの既存インストールに追加され、OC4JサーバーはOPMNによって管理されます。
様々なスタンドアロン・インストール・オプションの詳細は、『Oracle Web Services Managerインストレーション・ガイド』を参照してください。
Oracle WSMデプロイメント・タイプの要約
表4-1には、様々なOracle WSMインストールとデプロイメント・タイプがまとめられています。インストール・パッケージとインストール・オプションによって、Oracle WSMデプロイメントのタイプが決まります。「SSL接続用のトラストストア構成」では、デプロイメント・タイプによって、安全な通信の構成方法が決まります。
2つのコンポーネント間のSSL接続の場合、SSL接続を開始するコンポーネントがクライアントとして機能し、接続のクライアント側はトラストストアを使用するように構成する必要があります。トラストストアは、クライアントがSSLハンドシェイク中に暗黙的に受け入れる信頼できる認証局が記載されたキーストア・ファイルです。たとえば、Oracle WSM GatewayからOracle WSM Policy Managerへの接続を保護する場合は、ゲートウェイがトラストストアを使用するように構成する必要があります。この項では、次のOracle WSMデプロイメントで、クライアント用のトラストストア・ファイルを構成する方法について説明します。
OPMN管理デプロイメント
スタンドアロンOC4Jデプロイメント
インストールしたデプロイメントのタイプを確認するには、「セキュリティ構成オプション」を参照してください。
OPMN管理デプロイメント
Oracle WSMインストールがOPMNによって管理されている場合は、次の手順を実行します。
ORACLE_HOME
/opmn/conf/opmn.xml
ファイルを変更します。
JSSEトラストストア・プロパティを、XPath /opmn/process-manager/ias-component[id="default-group"]/process-type[id="home"]/module-data/category[id=start-parameters"]/data[id="java-options"]
を持つノードのシステム・プロパティとして次のように追加します。
-Djavax.net.ssl.trustStore=c:/mykeystore.jks
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.trustStoreType=JKS
表4-2では、JSSEトラストストア・パラメータについて説明しています。
スタンドアロンOC4Jサーバー・デプロイメント
Oracle WSMをスタンドアロン・パッケージの一部として、「基本」インストール・オプションでインストールした場合、次の手順を実行します。
ORACLE_HOME
/owsm/scripts/oc4j.xml
ファイルを変更します。
JSSEトラストストア・プロパティをシステム・プロパティとして、Antターゲット「oc4j.start
」に次のように追加します。
<target name="oc4j.start" description="-->Start OC4J server">
<echo message="Starting stand-alone OC4J server in ${oc4J.j2ee.home}"\>
<java.jar="${oc4j.j2ee.home}\oc4.jar
fork="true"
failonerror='true"
dir="${oc4j.j2ee.home}">
<jvmarg value="-XX:MaxPermSize=128M"\>
<jvmarg value="-Xms512M\>
<jvmarg value="-Xmx512M"\>
<sysproperty key="http.nonproxyHosts" value="${noproxy.hosts}"/>
<sysproperty key="http.proxyHost" value=${proxy.host}"/>
<sysproperty key="http.proxyPort" value=${proxy.port}"/>
<sysproperty key="javax.net.ssl.trustStoreType" value="JKS"/>
<sysproperty key="javax.net.ssl.trustStore" value="c:\mykeystore.jks"/>
<sysproperty key="javax.net.ssl.trustStorePassword" value="changeit"/>
</java>
</target>
表4-3では、JSSEトラストストア・パラメータについて説明しています。
Oracle WSM Gateway、Oracle WSM Policy ManagerおよびWeb Services Manager Controlは、すべてOC4J上のJ2EEアプリケーションです。これらに対する接続はSSLを使用して保護することができます。次の手順は、これらのアプリケーションを保護する方法の概要です。詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』の「OC4JとのSSL通信」を参照してください。
SSLを使用してOC4Jを保護する手順
ORACLE_HOME
/j
2ee/
instance
/config/secure-web-site.xml
ファイルを作成します。
変数instanceはOracleインスタンスの名前です。
protocol="http"
およびsecure="true"
プロパティを<web-site>
要素に追加します。
Oracle WSMコンポーネントへの接続がOracle HTTP Serverを経由している場合は、プロトコルをApache JServ Protocol(AJP)に設定する必要があります。protocol="ajp13"
およびsecure="true"
プロパティを、該当するコンポーネントの<web-site>
要素に追加します。
<ssl-config>
要素を<web-site>
要素の下に追加し、keystore
およびkeystore-password
属性を使用してキーストアの場所とパスワードを定義します。
たとえば、次のようになります。
<web-site display-name="OC4J Web Site" protocol="http" port="636" secure="true" > <default-web-app application="default" name="defaultWebApp" root="/j2ee" /> <access-log path="../log/default-web-access.log" /> <ssl-config keystore="../keystore" keystore-password="welcome" /> </web-site>
SSL対応にするOracle WSMコンポーネントごとに<web app>
エントリを入力します。たとえば、次のようになります。
<web app application="policymanager"...>
<web app application="gateway" ...>
<web app application="ccore"...>
注意: 必要なコンポーネントのエントリをOC4J_HOME /j2ee/ instance /config/default-web-site.xml ファイルからコピーすることもできます。 |
secure-web-site.xml
ファイルに追加した各<web app>
エントリについて、同じコンポーネントの<web app>
エントリをdefault-web-site.xml
ファイルから削除します。
Oracle Application Serverを再起動します。
通常、各Oracle WSMコンポーネントは、default-web-site.xml
ファイルまたはsecure-web-site.xml
ファイルの<web app>
要素に指定されています。つまり、コンポーネントは、セキュアなプロトコルかオープンなプロトコルでリクエストを受け入れるように構成されます。コンポーネントに対するリクエストを両方のプロトコルで受け入れる場合は、shared="true"
プロパティをdefault-web-site.xml
ファイルとsecure-web-site.xml
ファイルの<web-app>
要素に追加する必要があります。
図4-1は、Oracle WSMの基本デプロイメントで、どのコンポーネントが互いに通信するかを示しています。矢印は、接続が開始された場所から始まり、接続が終了する場所で終わります。たとえば、1つの接続が、Webサービス・クライアントによりOracle WSM Gatewayに対して開始されています。表4-4では、それぞれの接続、送信される情報のタイプ、およびサポートされる転送プロトコルについて説明しています。SSLを使用して保護できる接続については、表4-4に、安全な接続の構成方法を説明するこの章の項へのリンクが示されています。
表4-4 Oracle WSMコンポーネント間の接続の説明
図の番号 | コンポーネント間の接続の説明 | サポートされている安全な転送プロトコル | 安全な接続の構成方法に関する情報 |
---|---|---|---|
1 |
ポリシー実行ポイント(PEP)により、HTTPでのOracle WSM Policy ManagerとのSSL接続が開始されます。PEPは、ポリシー情報を取得し、これをWebサービスに対してセキュリティを実行するために使用します。 |
HTTPでのSSL。 |
「PEPからOracle WSM Policy Managerへの接続の保護」 |
2 |
Web Services Manager Controlにより、HTTPでのOracle WSM Policy ManagerとのSSL接続が開始されます。Web Services Manager Controlは、ポリシーに更新情報を送信し、ユーザー・インタフェースにポリシー情報を表示します。Web Services Manager Controlは、SSL接続のクライアントとして機能します。 |
HTTPでのSSL。 |
「Web Services Manager ControlからOracle WSM Policy Managerへの接続の保護」 |
3 |
Webサービス・クライアントは、HTTP、JMC、MQSeriesなどの転送プロトコルで、Oracle WSM Gatewayへの接続をオープンできます。これらの各プロトコルは、SSLを使用して保護できます。Webサービスのリクエストの送信とレスポンスの受信に、同じ接続が使用されます。 |
HTTP、JMSまたはMQSeriesでのSSL。 |
「Webサービス・クライアントからOracle WSM Gatewayへの接続の保護」 |
4 |
Oracle WSM Gatewayは、HTTP、JMC、MQSeriesなどの転送プロトコルで、Webサービスへの接続をオープンできます。これらの各プロトコルは、SSLを使用して保護できます。Webサービスのリクエストの送信とレスポンスの受信に、同じ接続が使用されます。 |
HTTP、JMSまたはMQSeriesでのSSL。 |
「Oracle WSM GatewayからWebサービスへの接続の保護」 |
5 |
管理者がWeb Services Manager Controlに接続すると、WebブラウザはHTTPでSSL接続を開始できます。 |
HTTPでのSSL。 |
「Web Services Manager Controlへの接続の保護」 |
6 |
Webサービスは、WSDL、UDDIまたはWSILファイルが置かれているサーバーからWSDLを参照することにより、Oracle WSM Gatewayに登録できます。Web Services Manager Controlは、そのサーバーのクライアントとして機能します。この接続は、SSLで保護できます。 |
HTTPでのSSL。 |
|
7 |
ポリシー実行ポイントは、LDAPサーバーに対してユーザーを認証および認可できます。ゲートウェイまたはエージェントは、LDAPS接続用のクライアントとして機能します。 |
LDAPでのSSL。 |
|
8 |
Web Services Manager Controlにログインすると、ユーザーはLDAPサーバーに対して認証されます。Web Services Manager ControlからLDAPサーバーへの接続は、SSLで保護できます。 |
LDAPでのSSL。 |
「Web Services Manager ControlからLDAPサーバーへの接続の保護」 |
9 |
Web Services Manager Controlは、データの更新情報をOracle WSMデータベースに送信し、Oracle WSMデータベースからデータを取得して、JDBCでユーザー・インタフェースにそのデータを表示します。Oracle WSMデータベースへのJDBC接続でのSSLは、動作が保証されていません。 |
サポートされている安全な転送プロトコルはありません。 |
該当なし |
10 |
Oracle WSM Policy Managerは、JDBCでOracle WSMデータベースと情報をやりとりします。Oracle WSMデータベースへのJDBC接続でのSSLは、動作が保証されていません。 |
サポートされている安全な転送プロトコルはありません。 |
該当なし |
11 |
Oracle WSM Monitorは、JDBCでOracle WSMデータベースに監視データを送信し、データベースからデータを取得します。Oracle WSMデータベースへのJDBC接続でのSSLは、動作が保証されていません。 |
サポートされている安全な転送プロトコルはありません。 |
該当なし |
12 |
Web Services Manager Controlでは、RMIでOracle WSM Monitorから監視グラフおよびレポートを取得し、表示します。Oracle WSM MonitorへのRMI接続でのSSLは、動作が保証されていません。 |
サポートされている安全な転送プロトコルはありません。 |
該当なし |
13 |
Oracle WSM AgentとOracle WSM Gatewayは、RMIで監視データをOracle WSM Monitorに送信します。Oracle WSM MonitorへのRMI接続でのSSLは、動作が保証されていません。 |
サポートされている安全な転送プロトコルはありません。 |
該当なし |
Oracle WSM Policy Managerへの次の接続は、SSLで保護できます。
次のタスクを実行して、PEPからOracle WSM Policy Managerへの接続を保護します。
Oracle WSM Policy ManagerをSSL対応にするには、「SSLを使用したOC4Jの保護」を参照してください。
また、Oracle HTTP Server経由でOracle WSM Policy Managerに接続している場合は、Oracle HTTP Sever構成でURL /policymanager/*
に対してもSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
「SSL接続用のトラストストア構成」の指示に従って、トラストストアを使用するようにPEPを構成します。
次のタスクを実行して、Web Services Manager ControlからOracle WSM Policy Managerへの接続を保護します。
Oracle WSM Policy ManagerをSSL対応にするには、「SSLを使用したOC4Jの保護」を参照してください。
また、Oracle HTTP Server経由でOracle WSM Policy Managerに接続している場合は、Oracle HTTP Sever構成でURL /policymanager/*
に対してもSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
次の手順を実行して、Web Services Manager Controlを構成します。
ORACLE_HOME
/owsm/config/ccore/ui-config-installer.properties
ファイルで次のプロパティを編集します。
ui.pm.server.httpScheme=https
ui.pm.server.httpPort=SSL_port
SSL_port
は、SSL接続が行われるポートです。
コマンドラインから次のコマンドを実行して、Web Services Manager Controlアプリケーションを再デプロイします。
wsmadmin deploy
control
トラストストア構成を使用するようにWeb Services Manager Controlを構成します。「SSL接続用のトラストストア構成」を参照し、ご使用のデプロイメント用の手順に従います。
Oracle WSM Gatewayとの接続は、SSLを使用して保護できます。後続の項では、これらの安全な接続の方法を説明します。
後続の項では、HTTP、JMSおよびMQSeriesでSSLを使用して、Webサービス・クライアントとOracle WSM Gateway間の接続を保護する方法について説明します。
HTTPS
Oracle WSM GatewayをSSL対応にするには、「SSLを使用したOC4Jの保護」を参照してください。
また、Oracle HTTP Server経由でOracle WSM Gatewayに接続している場合は、Oracle HTTP Sever構成でURL / gateway/*
に対してもSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
SSL用のJMSおよびMQSeries
次の手順に従い、SSL用のJMSおよびMQSeriesプロトコルを保護します。
ORACLE_HOME
/owsm/config/gateway-config-installer.properties
ファイルでSSLプロパティを編集します。
コマンドラインから次のコマンドを実行して、Oracle WSM Gatewayを再デプロイします。
wsmadmin deploy
gateway
「SSL接続用のトラストストア構成」の指示に従って、トラストストアを使用するようにOracle WSM Gatewayを構成します。
Oracle WSM GatewayをSSL対応にするには、「SSLを使用したOC4Jの保護」を参照してください。
また、Oracle HTTP Server経由でWeb Services Manager Controlに接続している場合は、Oracle HTTP Sever構成でURL /ccore/*
に対してもSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
Webサービスは、WSDL、UDDIまたはWSILが置かれているサーバーからWSDLを参照することにより、Oracle WSM Gatewayに登録できます。「SSL接続用のトラストストア構成」の指示に従って、トラストストアを使用するようにWeb Services Manager Controlを構成します。
LDAPサーバーへの次の接続は、SSLで保護できます。
「SSL接続用のトラストストア構成」の指示に従って、トラストストアを使用するようにPEPを構成します。
ポリシー・パイプラインとLDAP認証ポリシー・ステップについては、『Oracle Web Services Manager管理者ガイド』を参照してください。
LDAPサーバーへの接続を保護するためにSSLを使用するには、ORACLE_HOME/
owsm/config/ccore/ui-config-installer.properties
ファイルでプロパティを変更する必要があります。
ui-config-installer.properties
ファイルの「UI authentication properties」プロパティ・グループの下のプロパティを変更します。
ui.authentication.provider=com.cfluent.accessprovider.ldap.BasicLdapAuthProvider
ui.authentication.provider.properties=
ldapHost=ldaphost|\
ldapPort=389|\
ldapDN=o=company,c=us
ldapSSLEnabled=true|\
ldapSSLPort=636|\
roleAttribute=uniqueMember
トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
Active Directoryサーバーへの接続を保護するためにSSLを使用するには、ORACLE_HOME
/owsm/config/ccore/ui-config-installer.properties
ファイルでプロパティを変更する必要があります。
ui-config-installer.properties
ファイルの「UI authentication properties」プロパティ・グループの下のプロパティを変更します。
ui.authentication.provider=com.cfluent.accessprovider.ldap.ActiveDirectoryAuthProvider
ui.authentication.provider.properties=
ldapHost=ldaphost=139.185.17.7|
ldapPort=389|
ldapSSLEnabled=true|
ldapSSLPort=636|
ldapDN=dc=vanadium,dc=us,dc=oracle,dc=com|
roleAttribute=testgroup|
ldapDNSDomainName=vanadium.us.oracle.com|
ldapUidAttribute=sAMAccountName
表4-5 ui-config-installer.propertiesファイル・プロパティ
プロパティ | 説明 |
---|---|
|
Active Directoryを使用してユーザーを認証するクラス名。これを |
|
Active Directoryサーバーが稼働しているマシンのホスト名。 |
|
Active Directoryサーバーがリクエストをリスニングするポート。 |
|
LDAPドメイン名 |
|
SSLがActive Directoryサーバーに対して有効であるかどうかを指定します。 |
|
SSLが有効な場合に、Active Directoryがリクエストをリスニングするポート。 |
|
LDAPグループのユーザーを識別するLDAP属性名。 |
|
Active Directoryサーバーの完全修飾ドメイン名。 |
|
Active Directoryサーバーを検索する際に使用される一意の識別子。これを |
トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
SSLを有効にすると、ホスト名検証機能例外が発生するのはなぜですか。
サーバー側のSSL証明書のcnは、コンポーネントのホスト名と一致している必要があります。たとえば、Policy Managerがhttp://www.company.com
で実行されている場合、サーバー側のSSL証明書のdnはcn=www.company.com
で始まります。
openSSL
を使用したテスト用に新しいPKCS#12キーストアを作成するには、どのようにすればよいですか。
次の例は、接続のサーバー側の自己署名証明書で、新しいPKCS#12キーストアを作成する方法を示しています。対応するclient.p12ファイルの作成にも、同じ方法を使用します。
新しい自己署名証明書と、証明書に署名するための新しい秘密鍵を作成します。-days
オプションを使用して、証明書の有効期間を指定します。
openssl req -x509 -newkey rsa:1024 -days 365 -keyout server-privatekey.pem -out server-cert.pem
国、都道府県、地域などについて、いくつか質問されます。これらの質問は、情報を得るためのものです。例外が、共通名(CN)フィールドです。CNは、証明書が置かれているマシンのホスト名を表すために使用されます。SSLクライアントは、ホスト名がCNと一致していることを確認するために、ホスト名をCNフィールドによって検証します。CNは必ず、様々なconfig.xml
ファイルですべての接続URLに設定したホスト名(たとえば、localhost
)に設定してください。
自己署名証明書および関連付けられた秘密鍵をPKCS#12キーストアにインポートします。
openssl pkcs12 -export -in server-cert.pem -inkey server-privatekey.pem -name testalias -out server.p12
すべての一時ファイルを削除します。自己署名証明書と秘密鍵をPKCS#12キーストアに格納すると、server-cert.pem
ファイルとserver-privatekey.pem
ファイルは必要ありません。
rm -f server-cert.pem server-privatekey.pem
SSLでOracle WSM Policy Managerに接続しようとすると、「HTTPSホスト名が正しくありません」というエラー・メッセージが表示されるのはなぜですか。
サーバー証明書のCNフィールドが、クライアントの接続先のホスト名と一致していません。CNフィールドがホスト名と一致していることを確認する必要があります。エラー・メッセージ(localhostの場合)は次のようになります。
java.io.IOException: HTTPSホスト名が正しくありません: <localhost>に設定してください
ロード・バランサを使用している場合は、CNはロード・バランサのホスト名と一致させる必要があることに注意してください。
キーツールを使用したテスト用に新しいJKSキーストアを作成するには、どのようにすればよいですか。
次のコマンドを入力します。
keytool -genkey -keystore test.jks -storepass changeit