要配置 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
文件(在 wallet 目录下)的安全权限,并确保 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 中创建的 wallet。
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)