若要設定 Oracle 資料庫,請執行以下步驟:
註:
僅當先前未建立過 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)