Oracle Databaseの構成

Oracle Databaseを構成するには、次の手順を実行します。

  1. データベース・サーバー上に新しい自動ログイン・ウォレットを作成します。

    注:

    これらの手順は、Oracle Walletを以前に作成していない場合のみ必要です。次の手順は、データベース・サーバーでGUIのOracle Walletツールを使用している場合は必要ありません。
    C:\> cd %ORACLE_HOME%
    C:\oracledb\12.1.0\home> mkdir wallet
    C:\oracledb\12.1.0\home> orapki wallet create -wallet wallet -pwd password1 -auto_login
    orapkiコマンドラインで-auto_login_localを使用するように求めるメッセージが表示されても、無視してかまいません。SSL認証失敗エラーが発生した場合は、ドキュメントID 2238096.1を参照してこの問題をトラブルシューティングします。

    また、ファイルcwallet.sso (ウォレット・ディレクトリの下)のセキュリティ権限を確認し、Oracleリスナー・サービス・ユーザーにこのファイルへの読取り権限があることを確認します。読取り権限がないと、後でSSLハンドシェイクに失敗します。この状況は、ログインを許可されていない、Oracleユーザー候補を使用してOracleデータベースをインストールしてある場合に発生します。OracleデータベースをそのOracleユーザーでインストールしてある場合は、TNSリスナーを別のユーザーとして実行する必要があります。

  2. 自己署名付き証明書を作成し、それをウォレットにロードします
    C:\oracledb\12.1.0\home> orapki wallet add -wallet wallet -pwd password1 -dn "CN={FQDN of db server}" -
    keysize 1024 -self_signed -validity 3650

    上の例でのパスワードpassword1が、手順1で指定したパスワードと一致する必要があります。

  3. 新しく作成した自己署名付き証明書をエクスポートします
    C:\oracledb\12.1.0\home> orapki wallet export -wallet wallet -pwd password1 -dn "CN={FQDN of db server}"
    -cert %COMPUTERNAME%-certificate.crt
  4. エクスポートしたBase64証明書ファイルをHFMサーバーにコピーします。
  5. SQL*NETおよびTNSリスナーを構成するには、次の手順を実行します。
    1. データベース・サーバー上の使用されていないポートを特定します。下の例では、ポート1522で新しいリスナーが作成されます。SSL接続に使用される一般的なポートは2484ですが、空いているどのポートでも使用できます。先に進む前に、データベース・サーバー上の使用したいポートが空いていることを確認し、必要に応じて調整してください。
    2. SQLNET.ORAを更新します。WALLET_LOCATION宣言のDIRECTORY要素が、上の手順1で作成したウォレットを指している必要があります。
      SQLNET.AUTHENTICATION_SERVICES= (TCPS, NTS, BEQ)
      NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      WALLET_LOCATION=
      (SOURCE =
      (METHOD = FILE)
      (METHOD_DATA =
      (DIRECTORY = C:\oracledb\12.1.0\home\wallet)
      )
      )
      SSL_CLIENT_AUTHENTICATION = FALSE
    3. LISTENER.ORAを更新して新しいリスナーを定義します。上の手順5aで特定したポートを使用します。
      SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracledb\12.1.0\home)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracledb\12.1.0\home\bin\oraclr12.dll")
      )
      )
      SSL_CLIENT_AUTHENTICATION = FALSE
      WALLET_LOCATION=
      (SOURCE =
      (METHOD = FILE)
      (METHOD_DATA =
      (DIRECTORY = C:\oracledb\12.1.0\home\wallet)
      )
      )
      LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myServer)(PORT = 1521))
      )
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522))
      )
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      )
      )
      ADR_BASE_LISTENER = C:\oracledb
    4. その新しいポート用にTNSNAMES.ORA内に新しいエントリを作成します。
      ORCL_SSL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = myServer_service)
      )
      )

      上の手順5aで特定し手順5cで使用したのと同じポートを指定する必要があります。

    5. TNSリスナーを再起動します。
      C:\oracledb\12.1.0\home>lsnrctl stop
      C:\oracledb\12.1.0\home>lsnrctl start
    6. 新しいTNSリスナーが動作していることを確認します
      C:\oracledb\12.1.0\home>tnsping orcl_ssl
      TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 10-SEP-2019 15:43:22
      Copyright (c) 1997, 2014, Oracle. All rights reserved.
      Used parameter files:
      C:\oracledb\12.1.0\home\network\admin\sqlnet.ora
      Used TNSNAMES adapter to resolve the alias
      Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)
      (PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service)))
      OK (130 msec)