Oracle Cloud Infrastructureドキュメント

クライアント認証が無効なターゲット・データベースの自己署名付き証明書の作成

この例では、クライアント認証が無効になっている、ターゲット・データベース用の自己署名証明書を作成する方法を示します。 TLS接続を構成するとき、ターゲット・データベース登録の間に証明書をアップロードできます。 この情報はDBシステムにのみ適用されます。

自己署名証明書は、テスト目的で使用することは可能です。 ただし、本番システムの場合、Oracleは、信頼できる認証局または内部認証局(CA)によって署名された証明書を使用することをお薦めします。
クライアント認証が無効なターゲット・データベースに自己署名証明書を作成するには:
  1. orapkiユーティリティのロケーションがパスに追加されていることを確認してください。 このプロシージャの例では、このユーティリティを使用します。
  2. サーバーでウォレットのロケーションを作成し、ウォレット・ディレクトリに変更します。
    mkdir /mywallets
    cd /mywallets
  3. 現在のディレクトリにウォレットを作成します。
    orapki wallet create -wallet ./ -pwd password -auto_login 
  4. ウォレットの内容を表示します。
    orapki wallet display -wallet . -pwd password

    ウォレットに証明書がまだ存在しないことに注意してください。

  5. 自己署名(ルート)証明書を作成し、ウォレットに追加します。
    orapki wallet add -wallet . -dn "CN=rootca" -keysize 2048 -self_signed -validity 3650 -sign_alg sha256 -pwd password

    指定した識別名(CN=rootca)を持つユーザーのウォレットに証明書が追加されます。

    この証明書にはキーのペア(秘密キーと公開キー)が含まれています。

    -keysizeは、秘密キーのサイズです。

    -validity 3650は、現在の日付から証明書が有効である日数を指定します。

    -self_signedは、外部認証局(CA)が秘密キーおよび公開キーに署名する必要がないことを意味します。

    sha256は署名アルゴリズムです。

  6. ウォレットの内容を表示し、ユーザー証明書と信頼できる証明書があることを確認します:
    orapki wallet display -wallet . -pwd password

    ユーザー証明書にCN=rootcaが含まれるようになりました。

    信頼できる証明書の下に、CN=rootcaが必要です。

    ユーザー証明書と信頼できる証明書は、ユーザー自身が署名するのと同じです(自己署名)。

  7. 次のウォレットから自己署名証明書をエクスポートします:
    orapki wallet export -wallet . -dn "CN=rootca" -cert root1.crt -pwd password

    root1.crtは、エクスポートされたファイルの名前です。

  8. 次の手順を実行して、ターゲット・データベースでウォレットを構成します:
    1. 自己署名証明書をターゲット・データベースのウォレット・フォルダにコピーします。
    2. ターゲット・データベースのlistener.oraファイルに、行SSL_CLIENT_AUTHENTICATION = FALSEを追加し、TCPSのポート(1553など)を有効にしてウォレットを定義します。 次のコード例をガイドラインとして使用してください。
      # listener configuration file
      
      CONNECT_TIMEOUT_LISTENER = 0
      SSL_CLIENT_AUTHENTICATION = FALSE
      LISTENER = (ADDRESS_LIST =
      	(ADDRESS=(PROTOCOL=ipc)(KEY=19c))
      	(ADDRESS=(PROTOCOL=tcp)(HOST=ipaddress)(PORT=1552))
      	(ADDRESS=(PROTOCOL=tcps)(HOST=ipaddress)(PORT=1553))
      )
      WALLET_LOCATION = 
        (SOURCE =
      	(METHOD = FILE)
      	(METHOD_DATA =
      	   (DIRECTORY = /home/oracle/wallet)
      	)
         )
    3. ターゲット・データベースのsqlnet.oraファイルで、ラインSSL_CLIENT_AUTHENTICATION = FALSEを追加し、ウォレットのロケーションを追加します。 次のコード例をガイドラインとして使用してください。
      # sqlnet configuration file for clients
      
      automatic_ipc = off
      SQLNET.AUTHENTICATION_SERVICES = (beq, none)
      SSL_CLIENT_AUTHENTICATION = FALSE
      names.preferred_servers = (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=19c_ns))(CONNECT_DATA=(RPC=ON)))
      
      namesctl.noconfirm = true
      WALLET_LOCATION=
      	(SOURCE=(METHOD=FILE)(METHOD_DATA=
      	  (DIRECTORY=/home/oracle/mywallets)))
    4. コマンド・ウィンドウから、ターゲット・データベースのリスナーを再起動します。
      lsnrctl start
      lsnrctl stop
  9. Oracle Data Safeにターゲット・データベースを登録するときは、次のことを確認します:
    • 接続タイプとしてTLSを選択します。
    • listener.oraファイルに設定したポート番号に従ってポート番号を設定します。 この例では、ポート番号は1553です。
    • サーバー識別名には、ウォレット内に自己署名証明書を作成したときに使用した名前を入力します。 この例では、名前はCN=rootcaです。
    • ウォレットまたは証明書のタイプの場合は、PEM証明書を選択し、ウォレットからエクスポートした自己署名の証明書を選択します。 この例では、ファイルはroot1.crtです。