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デプロイメントで、クライアント用のトラストストア・ファイルを構成する方法について説明します。
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トラストストア・パラメータについて説明しています。
図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で保護できます。
トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
Oracle WSM Policy Managerを保護するには、Oracle HTTP Sever構成でURL /policymanager/*に対してSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
Web Services Manager ControlとOracle WSM Policy Manager間の接続を保護するには、次の手順に従います。
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 application_server_password control
トラストストア構成を追加します。「SSL接続用のトラストストア構成」を参照し、ご使用のデプロイメント用の手順に従います。
Oracle WSM Gatewayとの接続は、SSLを使用して保護できます。後続の項では、これらの安全な接続の方法を説明します。
後続の項では、HTTP、JMSおよびMQSeriesでSSLを使用して、Webサービス・クライアントとOracle WSM Gateway間の接続を保護する方法について説明します。
HTTPS
HTTPサーバーがOracle WSM Gatewayのフロント・エンドである場合、HTTPサーバー構成で有効なSSLによりゲートウェイURLを構成します。
SSL用のJMSおよびMQSeries
次の手順に従い、SSL用のJMSおよびMQSeriesプロトコルを保護します。
ORACLE_HOME/owsm/config/gateway-config-installer.propertiesファイルでSSLプロパティを編集します。
コマンドラインから次のコマンドを実行して、Oracle WSM Gatewayを再デプロイします。
wsmadmin deploy application_server_password gateway
トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
HTTPSでWeb Services Manager Controlを保護するには、Oracle HTTP Server構成でURL /ccore/*に対してSSLを有効にする必要があります。Oracle HTTP Serverの構成方法については、『Oracle HTTP Server管理者ガイド』を参照してください。
Webサービスは、WSDL、UDDIまたはWSILが置かれているサーバーからWSDLを参照することにより、Oracle WSM Gatewayに登録できます。トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
LDAPサーバーへの次の接続は、SSLで保護できます。
トラストストアの構成方法の手順は、「SSL接続用のトラストストア構成」を参照してください。
ポリシー・パイプラインと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接続用のトラストストア構成」を参照してください。
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