Oracle Databaseを構成するには、次の手順を実行します。
注:
これらの手順は、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リスナーを別のユーザーとして実行する必要があります。
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で指定したパスワードと一致する必要があります。
C:\oracledb\12.1.0\home> orapki wallet export -wallet wallet -pwd password1 -dn "CN={FQDN of db server}" -cert %COMPUTERNAME%-certificate.crt
1522
で新しいリスナーが作成されます。SSL接続に使用される一般的なポートは2484
ですが、空いているどのポートでも使用できます。先に進む前に、データベース・サーバー上の使用したいポートが空いていることを確認し、必要に応じて調整してください。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
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
TNSNAMES.ORA
内に新しいエントリを作成します。
ORCL_SSL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = myServer)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myServer_service) ) )
上の手順5aで特定し手順5cで使用したのと同じポートを指定する必要があります。
C:\oracledb\12.1.0\home>lsnrctl stop C:\oracledb\12.1.0\home>lsnrctl start
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)