この章では、Oracle GoldenGateインスタンスを監視する場合に、Oracle GoldenGate MonitorサーバーとOracle GoldenGateエージェント間のJava Management Extensions (JMX)通信にSecure Sockets Layer (SSL)を使用する方法について説明します。
この章の内容は次のとおりです。
Oracle GoldenGate Monitor通信は、Oracle GoldenGate MonitorサーバーとOracle GoldenGateインスタンスのエージェント間の双方向で行われます。Oracle GoldenGate Monitorでは、SSLおよびセキュアJMX通信のいずれもサポートしますが、両方は同時にサポートしません。
通常は、Oracle GoldenGate Monitorサーバーおよびエージェントは、それらの間で送信されるデータを暗号化します。SSLを使用すると、次のセキュリティが追加されます。
Oracle GoldenGate MonitorサーバーとOracle GoldenGateエージェント間のSSL通信は、証明書の形式の資格証明で検証する必要があります。
SSLを使用して、ネットワーク上でOracle GoldenGate MonitorサーバーとOracle GoldenGateエージェント間で渡される情報は、送信中のデータが第三者によって変更されないように暗号化されます。
SSLを使用するかどうかを選択できますが、両方を同時に選択することはできません。Oracle GoldenGate MonitorサーバーがSSLを使用する場合は、それと通信するすべてのエージェントもSSLを使用する必要があります。Oracle GoldenGateインスタンスを監視するためにSSL通信を使用するオプションは、次に従います。
デフォルトはSSLを使用しない設定ですが、使用するにはSSLを有効にする必要があります。
サポートされているOracle GoldenGateプラットフォーム(監視がサポートされていないHP NonStopおよびIBM AS/400を除く)でOracle GoldenGateインスタンスを監視するために、SSLを使用できます。
SSLを使用する場合、SSLが使用するリポジトリ(キーストア)はパスワードで保護されます。このパスワードは、サポートされているすべてのプラットフォーム(IBM z/OSを除く)のOracle Walletに格納されます。z/OSの場合、すべてのパスワードは、インストール・ディレクトリのcfg
サブディレクトリにあるpassword.propterties
ファイルに格納されます。
Oracle GoldenGate Monitorでは、双方向SSL認証をサポートしており、Oracle GoldenGate MonitorサーバーおよびOracle GoldenGateエージェントは双方向通信を使用します。Oracle GoldenGate Monitorサーバーおよびエージェントは、それぞれサーバー(リクエストを受信)として機能したり、クライアント(リクエストを送信)として機能します。
SSLの設定には、Java Keytoolを使用したキーストアおよび証明書の作成が含まれます。この章では、SSLの鍵および証明書の生成手順について説明しますが、前提となるのは、Java Keytoolおよびキーストアの知識があること、Java Keytoolのドキュメントを読んでいること、推奨するセキュリティの考慮事項を認識していることです。
次の用語は、この章で使用するJava用語です。詳細な定義および関連する用語の定義は、Java Keytoolのドキュメントを参照してください。
キーストア
キーストアとは、SSL認証に使用されるデータベースです。キーストアには、秘密鍵と証明書、クライアントまたはサーバーの識別に使用される対応する公開鍵が少なくとも格納されます。ただし、他のパーティから証明書を追加して、キーストアにマージするようにトラストストアを構成できます。
証明書
証明書とは、エンティティからのデジタル署名された文です(署名を検証して信頼性をチェックできるため、参照される公開鍵が有効であることが記載されています)。
トラストストア
トラストストアには、他のエンティティの証明書の署名(発行)について信頼済のサード・パーティの認証局(CA)と(から)通信する、他のパーティからの公開鍵と証明書が格納されます。トラストストアは、キーストアにマージするように構成できるため、すべての鍵と証明書の場所が1つになります。
Keytool
Keytoolとは、鍵および証明書を生成および管理するためのJavaユーティリティです。
Oracle GoldenGate MonitorサーバーおよびOracle GoldenGate Monitorエージェントは、デフォルトでSSLが有効になっていません。SSLを使用する場合は、サーバーおよびエージェントのプロパティを有効にする必要があります。キーストアを作成し、指定した場所に各キーストアを配置する必要もあります。
SSLを有効にするには、サーバーおよびエージェントの両方のプロパティ設定を変更する必要があります。
Oracle GoldenGate Monitorサーバーの場合:
Oracle GoldenGate Monitorサーバーのインストール・ディレクトリに移動します。
monitor.properties
ファイルを編集しmonitor.ssl
プロパティをtrue
に設定します。
Oracle GoldenGate Monitorサーバーを一度停止してから再び開始し、新しい設定を有効化します。
各Oracle GoldenGate Monitorエージェントの場合:
Oracle GoldenGate Monitorインスタンスのインストール・ディレクトリに移動します。
エージェントのConfig.properties
ファイルを編集し、jagent.ssl
プロパティをtrue
に設定します。
注意: Oracle GoldenGate MonitorサーバーでSSLを有効にする場合は、サーバーと通信するすべてのエージェントでもSSLを有効にする必要があります。 |
SSLでは、証明書および鍵ペアを格納するためのキーストアを作成する必要があります。これらを作成するには、Java Secure Sockets Extension (JSSE)のKeytoolを使用します。Solaris/UNIXまたはWindowsのKeytoolドキュメントにアクセスするには、「JDKツールとユーティリティ」(http://docs.oracle.com/javase/6/docs/technotes/tools
)を参照してください。
キーストアの場所
Oracle GoldenGate Monitorのキーストアは、サーバーおよびエージェントのインストールの場所の次のディレクトリに格納する必要があります。
エージェントの証明書を含むキーストアは、Oracle GoldenGateインスタンスのインストールディレクトリのdircrt
サブディレクトリに格納する必要があります。デフォルト名はjagentKeyStore
です。
Monitorサーバーのキーストアおよび証明書は、Oracle GoldenGate Monitorサーバーのインストール・ディレクトリのcert
サブディレクトリに格納する必要があります。デフォルト名はmonitorKeyStore
です。
デフォルトでは、キーストアは、Keytoolが実行されるディレクトリに作成されます。指定した場所からKeytoolを実行するか、キーストアの作成後にキーストアを移動します。
jagent.keystore.file
、jagent truststore.file
、monitor.keystore.file
またはmonitor.truststore.file
プロパティを設定することで、キーストアのデフォルト名を変更できます。キーストアとトラストストアのファイルが同じ名前に設定されている場合は、そのファイルが使用され、証明書と他のエンティティからの信頼済の証明書の両方が格納されます。
キーストアのパスワード
キーストアは、Oracle GoldenGate Monitorサーバーまたはエージェントを識別する証明書を作成したときに作成されるパスワードで保護されます。このパスワードは、Oracle Wallet(IBM z/OSの場合はpassword.properties
ファイル)にも追加する必要があります。
注意: Oracle GoldenGate Monitorパスワードは、サポートされているすべてのプラットフォーム(IBM z/OSを除く)のOracle Walletに格納されます。z/OSの場合は、Oracle GoldenGate Monitorサーバーまたはエージェントのインストール場所の |
Oracle GoldenGate Monitorサーバーの場合:
WebLogic Scripting ToolコマンドのupdateCred()
(2.3.1項「パスワードの作成」を参照)を使用して、キーストアのパスワードを追加します。
個別のトラストストアを使用している場合は、updateCred()
を使用して、そのパスワードも追加します。
各Oracle GoldenGateエージェントの場合:
Oracle GoldenGateエージェントのパスワードを追加します(3.3項「Oracle GoldenGate Monitorエージェントのパスワードの更新」を参照)。
個別のトラストストアを使用している場合は、ユーティリティの-truststore
オプションを使用して、トラストストアのパスワードも追加します。
Java Keytoolを使用して、Oracle GoldenGate MonitorサーバーおよびOracle GoldenGateエージェントの検証に必要な証明書を作成できます。Keytoolでは、これらの証明書をキーストアに格納します。
最初に、Oracle GoldenGate Monitorサーバーを識別する自己署名証明書を作成し、Oracle GoldenGate Monitorエージェント・トラストストアにエクスポートします。
Monitorサーバーを検証するための証明書の作成
次の手順に従い、証明書を作成します。コマンドおよびオプションの詳細は、Java用のKeytoolのドキュメントを参照してください。
Oracle GoldenGate Monitorサーバーのインストール・ディレクトリに移動し、cert
サブディレクトリに移動します。これは、Monitorサーバー・キーストアの場所です。
Monitorで使用される証明書を作成し、自身を検証して通信を暗号化します。
例:
keytool -genkeypair -keystore monitorkeystore -keyalg rsa -alias monalias -storepass keystorepw -keypass serverpw
オプション-keystore
は、キーストア・リポジトリの名前を識別します。monitorkeystore
デフォルト名を使用しない場合は、選択した名前でmonitor.properties
ファイルを更新する必要があります。
-keyalg
は、暗号化アルゴリズムを指定します(rsa
にする必要があります)。
-alias
は、作成される新しいキーストア・エントリの識別子を指定します(この例ではmonalias
)。
-storepass
は、キーストアを保護するパスワードを指定します。-keypass
は、Monitorサーバーを識別する生成済の鍵ペアの秘密鍵を保護するパスワードを指定します。これらにパスワードを指定しないと、入力するように求められます。
次の質問に答えるように求められます。
What is your first and last name? What is the name of your organizational unit? What is the name of your organization? What is the name of your City or Locality? What is the name of your State or Province? What is the two-letter country code for this unit?
答えを入力すると、答えが表示され、それらが正しいかの確認が求められます。この情報は、証明書の一部になります。
(オプション)次のコマンドを使用して、作成されたエントリをリストし、証明書の作成を検証します。
keytool -list -alias monalias -keystore monitorkeystore
Oracle GoldenGate Monitorサーバー証明書をmonitorkeystore
キーストアからファイルにエクスポートします。例:
keytool -exportcert -aliasmonalias
-filemoncert.crt
-keystoremonitorkeystore
storepasskeystorepw
オプション-file
は、エクスポート後にmonalias
証明書を保持するファイルを指定します。-keystore
は、エクスポートされるalias
を格納するリポジトリを指定します。
オプションで、-certreq
オプションを付けて証明書署名リクエスト(CSR)を生成し、サード・パーティのCAに送信して署名できます。
(オプション)証明書情報を出力します。例:
keytool -printcert -file moncert.crt
Keytool exportcert
コマンド(この例ではmoncert.crt
)で作成したOracle GoldenGate Monitorサーバー証明書ファイルを、Oracle GoldenGateエージェントのinstallation location
/dircrt
ディレクトリにコピーします。
エージェント・キーストアへのサーバー証明書のインポート
次の手順を実行し、Oracle GoldenGate Monitorサーバー証明書をエージェント・トラストストアにインポートします。
Oracle GoldenGateエージェント・キーストアの場所(installation location
/dircrt
)に移動します。
証明書をOracle GoldenGateエージェント・キーストアにインポートします。例:
keytool -importcert -aliasagentalias
-filemoncert.crt
-keystorejagentkeystore
storepassagentkeystorepw
これは、moncert.crt
ファイルから証明書を読み取り、jagentkeystore
に格納します。
オプションで、-trustcerts
オプションを使用して、信頼チェーンの追加の証明書をCA証明書のシステム全体のキーストアからインポートできます。たとえば、次のコマンドは、Keytoolをトリガーして、moncert.crt
から自己署名証明書までの信頼パスの確立を試みます。
keytool -importcert -trustcacerts -aliasagentalias
-filemoncert.crt
-keystorejagentkeystore
-storepassagentkeystorepw
(オプション)キーストアに作成された証明書をリストし、インポートを検証します。例:
keytool -list -keystorejagentkeystore
storepassagentkeystorepw
自己署名証明書を作成してOracle GoldenGate Monitorエージェントを検証し、証明書をOracle GoldenGate Monitorサーバーにインポートする必要があります。
次の手順に従い、エージェントの証明書を作成します。コマンドおよびオプションの詳細は、Keytoolのドキュメントを参照してください。
Oracle GoldenGateエージェント・キーストアの場所(installation location
/dircrt
)に移動します。
次のように、Keytoolコマンドを使用してエージェント証明書を生成します。
keytool -genkeypair -aliasagentalias
-keystorejagentkeystore
この例では、同じキーストアjagentkeystore
を使用しており、これはOracle GoldenGate Monitorサーバーからの信頼済証明書に使用しています。
キーストアのパスワードは入力していないため、入力するようにKeytoolから求められます。
(オプション)キーストアの証明書をリストし、作成を検証します。例:
keytool -list -keystorejagentkeystore
-storepassagentkeystorepw
エージェントを検証する証明書をファイルにエクスポートします。例:
keytool -exportcert -aliasagentalias
-fileagentclient.crt
-keystorejagentkeystore
-storepassagentkeystorepw
(オプション)証明書情報を出力します。
keytool -printcert -file agentclient.crt
証明書ファイル(この例ではagentclient.crt
)をOracle GoldenGate Monitorサーバーのinstallation location
/cert
ディレクトリにコピーします。
次の手順に従い、証明書をOracle GoldenGate Monitorサーバー・トラストストアにインポートします。
Oracle GoldenGate Monitorサーバー・キーストアの場所(installation location
/dircrt
)に移動します。
エージェント証明書をOracle GoldenGate Monitorサーバー・キーストアにインポートします。例:
keytool -importcert -aliasagentalias
-fileagentclient.crt
-keystoremonitorkeystore
-storepasskeystorepw
(オプション)証明書情報をリストし、インポートを検証します。
keytool -list -keystoremonitorkeystore
-storepasskeystorepw
Java Keytoolを使用して、信頼できるサード・パーティによって証明書を署名するようにリクエストできます。認証局(CA)が証明書を署名すると、キーストアまたはトラストストアにインポートして、識別と検証を実行できます。
次の手順に従い、証明書署名リクエスト(CSR)を生成します。この例では、Oracle GoldenGate Monitorサーバー側またはエージェント側のいずれかに例を制限するのを回避するために、異なる名前をキーストアに使用しています。
次のように、Keytoolコマンドを使用してCSRを生成します。
keytool -certreq -v -aliascertalias
-filecert.csr
-keypasskeypassword
-storepasskeystorepw
-keystorekeystore.jks
このコマンドでは、-file
オプションで指定した、cert.csr
という名前のファイルを作成します。-v
オプションでは、冗長モードを署名し、詳細情報を出力します。
CSR cert.csr
を、証明書を署名するサード・パーティに送信します。
サード・パーティのCAから署名済証明書が戻されたら、署名済証明書および署名したCAの証明書をキーストアにインポートします。
CA証明書および署名済証明書をPEM形式に変換し、キーストアのディレクトリに格納します。チェーン内の証明書を含む、各証明書を個別に格納する必要があります。
次のコマンドを使用して、チェーン内の最上位(ルート)証明書(CAの自己署名証明書にする必要があります)をインポートします。
keytool -importcert -v -noprompt -trustcacerts -aliasrootCA
-filerootCA.pem
-keystorekeystore.jks
-storepasskeystorepw
この例では、rootCA
は、証明書の別名で、rootCA.pem
は、チェーン内の最上位の証明書を格納するファイルです。
インポートが成功すると、KeytoolによってメッセージCertificate was added to keystore
が表示されます。
注意: 一部のサード・パーティ認証局では、チェーン内にルート証明書と中間CA証明書の2つのCA証明書が存在する場合があります。この場合は、ルート証明書の直後に中間証明書をインポートするようにしてください。 |
チェーン内の証明書(.pem
ファイル)ごとに、インポートを繰り返します。それぞれ異なるalias
を作成します。
すべての証明書が正常にインポートされたら、次のコマンドを使用して、署名済応答証明書をインポートします。
-keytool -importcert -v-aliascertalias
-filecert.pem
-keystorekeystore
.jks -keypasskeypass
-storepasskeystorepw
証明書およびCSRの生成時に使用したのと同じalias
を使用します。
インポートが成功すると、KeytoolによってメッセージCertificate reply was installed in the keystore
が表示されます。
インポートされたすべてのCA証明書をリストします。
keytool -list -keystorekeystore.jks
-storepasskeystorepw
次のコマンドを使用して、公開証明書をエクスポートします(ファイルcert.cer
が作成されます)。
keytool -exportcert -aliascertalias
-filecert.cer
-keystorekeystore.jks
-storepasskeystorepw
証明書ごとに、エクスポートを繰り返します。
証明書およびそのCA証明をキーストアにインポートするには、最初にすべての証明書を.pem
形式で個別のファイルに格納します。次に、最上位(ルート)証明書から開始し、それぞれに異なる別名を指定してすべての証明書をインポートします。ルート証明書をインポートする例:
keytool -importcert -v -noprompt -trustcacerts -aliasIDrootCA
-fileIDrootCA.pem
-keystorekeystore.jks
-storepassstorepasspw
証明書ごとに、インポートを繰り返します。