14.4.2 自己署名サーバー証明書の使用

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

14.4.2.1 自己署名サーバー証明書の生成

opensslコマンドを使用して、自己署名サーバー証明書を作成できます。

次のステップでは、自己署名サーバー証明書を生成する方法を示します。
  1. 次のディレクトリに移動します。
    cd /etc/oracle/graph
  2. 次のコマンドを実行します。
    openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=MyState/L=MyTown/O=MyOrganization/CN=ROOT" -keyout ca_key.pem -out ca_certificate.pem
    openssl genrsa -out server_key_traditional.pem 2048
    openssl pkcs8 -topk8 -in server_key_traditional.pem -inform pem -out server_key.pem -outform pem -nocrypt
    openssl req -new -subj "/C=US/ST=MyState/L=MyTown/O=MyOrganization/CN=localhost" -key server_key.pem -out server.csr
    chmod 600 server_key.pem
    openssl x509 -req -CA ca_certificate.pem -CAkey ca_key.pem -in server.csr -out server_certificate.pem -days 365 -CAcreateserial
    chown oraclegraph:oraclegraph server_key.pem

    ノート:

    • 前述の例に示されている証明書は、ホストlocalhostに対してのみ機能します。別のドメインを使用している場合は、localhostをそのドメイン名に置き換える必要があります。
    • 前述の自己署名証明書は365日間のみ有効です。

14.4.2.2 グラフ・サーバー(PGX)の構成

グラフ・サーバー(PGX)構成ファイルで、サーバー証明書へのパスとサーバーの秘密キーをPEM形式で指定する必要があります。

ノート:

Webアプリケーションのダウンロード・パッケージを使用してグラフ・サーバーをWebサーバーにデプロイする場合、このセクションは適用されません。TLSの構成方法の詳細は、Webサーバーのマニュアルを参照してください。
  1. /etc/oracle/graph/server.confでファイルを編集し、次のように、サーバー証明書へのパスおよびサーバーの秘密キーをPEM形式で指定します。
    {
      "port": 7007,
      "enable_tls": true,
      "server_private_key": "/etc/oracle/graph/server_key.pem",
      "server_cert": "/etc/oracle/graph/server_certificate.pem",
      "enable_client_authentication": false,
      "working_dir": "/opt/oracle/graph/pgx/tmp_data"
    }
  2. オプションで、証明書が別のホスト(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を必要なホスト名に置き換えます。

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

    注意:

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

14.4.2.3 自己署名証明書を信頼するためのクライアントの構成

グラフ・サーバー(PGX)の自己署名証明書を受け入れるようにクライアント・アプリケーションを構成する必要があります。

自己署名証明書を信頼するようにクライアントを構成するには、ルート証明書をJavaインストールのローカル・トラスト・ストアにインポートする必要があります。
  • JavaまたはPythonクライアントの場合、すべてのクライアントによって使用されるすべてのJavaインストールにルート証明書をインポートする必要があります。

    ノート:

    JShellクライアントには、Java 11以降が必要です。
  • グラフ・ビジュアライゼーション・アプリケーションの場合、グラフ・サーバー(PGX)を実行している環境のシステムJavaインストールまたはグラフ・ビジュアライゼーション・アプリケーションを提供するWebサーバーにルート証明書をインポートする必要があります。つまり、グラフ・ビジュアライゼーション・アプリケーションを提供するサーバーを実行しているOSユーザーが使用するJDKインストールです。

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

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

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

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