14.4.1 自己署名サーバー・キーストアの使用

この項では、/etc/oracle/graphに自己署名キーストアを生成し、このキーストアを使用するようにグラフ・サーバー(PGX)およびクライアントを構成するステップについて説明します。

14.4.1.1 自己署名サーバー・キーストアの生成

keytoolコマンドを使用してサーバー・キーストアを作成できます。

次のステップでは、自己署名証明書が含まれるサーバー・キーストアを作成する方法を示します。
  1. 次のディレクトリに移動します。
    cd /etc/oracle/graph
  2. 次のコマンドを実行します。
    keytool -genkey -alias pgx -keyalg RSA -keystore server_keystore.jks
  3. 要求された詳細を指定します。たとえば:
    Enter keystore password:
    Re-enter new password:
    What is your first and last name?
      [Unknown]:  localhost
    What is the name of your organizational unit?
      [Unknown]:  OU
    What is the name of your organization?
      [Unknown]:  MyOrganization
    What is the name of your City or Locality?
      [Unknown]:  MyTown
    What is the name of your State or Province?
      [Unknown]:  MyState
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is CN=localhost, OU=OU, O=MyOrganization, L=MyTown, ST=MyState, C=US correct?
      [no]:  yes
    server_keystore.jkscd /etc/oracle/graphに正常に作成されます。

14.4.1.2 サーバー・キーストアを使用する際のグラフ・サーバー(PGX)の構成

グラフ・サーバー(PGX)構成ファイルで、サーバー・キーストアへのパスを指定する必要があります。

ノート:

Webアプリケーションのダウンロード・パッケージを使用してグラフ・サーバーをWebサーバーにデプロイする場合、このセクションは適用されません。TLSの構成方法の詳細は、Webサーバーのマニュアルを参照してください。
  1. 次のように、/etc/oracle/graph/server.confのファイルを編集して、サーバー・キーストア別名、サーバー・キーストア・プロバイダ、サーバー・キーストア・タイプおよびサーバー・キーストアへのパスを指定します。
    {
      "port": 7007,
      "enable_tls": true,
      "server_keystore": "/etc/oracle/graph/server_keystore.jks",
      "server_keystore_alias": "pgx",
      "server_keystore_type": "PKCS12",
      "server_keystore_provider": "SUN",
      "ca_certs": [],
      "working_dir": "/opt/oracle/graph/pgx/tmp_data"
    }
  2. PGX_SERVER_KEYSTORE_PASSWORDというOS環境変数またはpgx.SERVER_KEYSTORE_PASSWORDというjavaプロパティを使用して、キーストア・パスワードを設定します。

    たとえば、PGX_SERVER_KEYSTORE_PASSWORDでキーストア・パスワードを設定するには、次のように/etc/systemd/system/pgx.serviceのファイルを編集します。

    [Service]
    Environment="PGX_SERVER_KEYSTORE_PASSWORD=<keystore_password>"
  3. 次のコマンドを実行してsystemd構成を再ロードします。
    sudo systemctl daemon-reload
  4. オプションで、キーストアが別のホスト(localhost以外)に対して有効な場合、pgx.confファイルのpgx_realm構成のbase_urlパラメータを一致するホストの詳細で更新します。
     ...
      "pgx_realm": {
        "implementation": "oracle.pg.identity.DatabaseRealm",
        "options": {
          ...
          "base_url": "<request-scheme>://localhost:<request-port>"
        }
      }
      ...
    前述の構成で:
    • request-scheme: 値はHTTPまたはHTTPSのいずれかです。指定しない場合、グラフ・サーバーは対応する値をブラウザから自動的にフェッチします。
    • request-port: 使用されるポート番号。指定しない場合、グラフ・サーバーは対応する値をブラウザから自動的にフェッチします。

    デフォルトのlocalhostを必要なホスト名に置き換えます。

  5. グラフ・サーバーを再起動します。

    注意:

    • 組織によって信頼されている認証局(CA)によって発行された有効な証明書を常に使用してください。CA証明書がない場合は、一時的に自己署名証明書を作成して開始できます。ただし、本番環境では、自己署名証明書を使用することはお薦めしません。
    • 自己署名付きサーバー証明書を生成するステップでは、クライアントシステム上のJavaインストールを変更できます。システム全体で自己署名証明書を受け入れることの影響を十分に認識している場合にのみ、これらのステップを実行します。
    • sudoでコマンドを使用する場合は、慎重に検討してください。

14.4.1.3 自己署名キーストアを信頼するためのクライアントの構成

自己署名キーストアを受け入れるようにクライアント・アプリケーションを構成する必要があります。

自己署名キーストアを信頼するようにクライアントを構成するには、ルート証明書をJavaインストールのローカル・トラスト・ストアにインポートする必要があります。
  • JavaまたはPythonクライアントの場合、すべてのクライアントによって使用されるすべてのJavaインストールにルート証明書をインポートする必要があります。
  • グラフ・ビジュアライゼーション・アプリケーションの場合、グラフ・サーバー(PGX)を実行している環境のシステムJavaインストールまたはグラフ・ビジュアライゼーション・アプリケーションを提供するWebサーバーにルート証明書をインポートする必要があります。つまり、グラフ・ビジュアライゼーション・アプリケーションを提供するサーバーを実行しているOSユーザーが使用するJDKインストールです。

次のステップに示すように、ルート証明書をインポートできます。

  1. JAVA_HOMEが設定されていることを確認し、rootユーザーとして、またはsudoを使用して次のコマンドを実行します。
    sudo keytool -importkeystore -srckeystore /etc/oracle/graph/server_keystore.jks -destkeystore $JAVA_HOME/lib/security/cacerts -deststorepass changeit -srcstorepass changeit -noprompt
    ここで、changeitはサンプルのキーストア・パスワードです。このパスワードは任意のパスワードに変更できます。証明書を変更する際に必要になるため、このパスワードは忘れないでください。

    グラフ・サーバーを以前のリリースからアップグレードする場合は、新しい証明書をインポートする前に、まず既存の証明書を削除する必要があります。sudoを使用するかrootユーザーとして次のコマンドを実行して証明書を削除します:

    sudo keytool -delete -alias pgx -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit