8.6 SSL対応MySQLデータベースへのOracle GoldenGate Veridataの接続

サーバー証明書を介したエージェント認証の設定

  1. ca.pemファイルをMySQLデータベース・サーバーからVeridataエージェント・マシンにコピーします。
  2. Veridataエージェント・マシンでkeytoolコマンド($> keytool -importcert -alias <Set_Your_Alias> -file ca.pem -keystore truststore -storepass <Set_Your_Password>)を実行してca.pemファイルをインポートします。

    ノート:

    トラストストア・ファイルがまだない場合は、新規作成されます。そうでない場合は、証明書が既存のファイルに追加されます。
  3. <AGENT_DEPLOY_LOCATION>/agent.propertiesファイル内のMySQL JDBC URLに次の接続パラメータを追加します。
    • MySQLバージョン8.0.12以前の場合は、database.url=jdbc:mysql://abc.com:3306?useSSL=true&verifyServerCertificate=trueです。
    • MySQLバージョン8.0.13以降の場合は、 database.url=jdbc:mysql://abc.com:3306?sslMode=<VERIFY_CAまたはVERIFY_IDENTITY>です。

      ノート:

      VERIFY_IDENTITYオプションは、mysqlからのデフォルトの自己署名証明書ca.pemでは機能しません。
  4. Javaパラメータをエクスポートして、先ほど作成または変更したトラストストアを読み取ります。Export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=<path_to_truststore_file> -Djavax.net.ssl.trustStorePassword=<your_truststore_password>"

クライアント証明書を介したクライアント認証の設定

  1. client-cert.pemおよびclient-key.pemという2つのファイルをMySQLデータベース・サーバーからVeridataエージェント・マシンにコピーします。
  2. Veridataエージェント・マシンでopensslコマンド($> openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name "<Set_Your_name>" -passout pass:<Set_Your_Password> -out client-keystore.p12)を実行してクライアント・キーおよび証明書ファイルをPKCS #12アーカイブに変換します。
  3. Veridataエージェント・マシンでkeytoolコマンド($> keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass <Set_Your_Password> -destkeystore keystore -deststoretype JKS -deststorepass <Set_Your_Password>)を実行してそのPKCSファイルをインポートします。

    ノート:

    キーストア・ファイルがまだない場合は、新規作成されます。そうでない場合は、証明書が既存のファイルに追加されます。
    この手順の後に、そのPKCS #12アーカイブ(この例ではclient- keystore.p12)を削除できます。
  4. Javaパラメータをエクスポートして、作成または変更したキーストアを読み取ります: export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStore=<path_to_keystore_file> -Djavax.net.ssl.keyStorePassword=<your_keystore_password>"
  5. サーバー証明書を介した場合とは異なり、クライアント証明書を介した認証では、MySQL JDBC URLに接続パラメータは必要になりません。

双方向認証

サーバー証明書を介したサーバー認証の設定クライアント証明書を介したクライアント認証の設定のトピックで説明した手順を適用します。

Javaパラメータをエクスポートして、サーバーとクライアントの両方の認証スキーマを同時に有効にします:

export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=<path_to_truststore_file> -Djavax.net.ssl.trustStorePassword=<your_truststore_password> -Djavax.net.ssl.keyStore=<path_to_keystore_file> -Djavax.net.ssl.keyStorePassword=<your_keystore_password>"