我正在尝试设置 Oracle 的 SSL 相互身份验证。windows server 2008R2 上的数据库,上面是 Active Directory,地址为 192.168.56.12。Windows 7 客户端,地址 192.168.56.11。listener.ora 服务器:
TRACE_LEVEL_LISTENER = ADMIN
TRACE_FILE_LISTENER = listener
TRACE_DIRECTORY_LISTENER = C:/app/Kefir/product/12.2.0/dbhome_1/network/trace
LOG_FILE_LISTENER = listener
LOG_DIRECTORY_LISTENER = C:/app/Kefir/product/12.2.0/dbhome_1/network/log
LOGGING_LISTENER = ON
SID_LIST_SSL_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(SID_NAME = ORCL)
(ORACLE_HOME = C:/app/Kefir/product/12.2.0/dbhome_1)
)
)
#SSL_CLIENT_AUTHENTICATION = FALSE
SSL_LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = 192.168.56.12)(PORT = 2484))
)
WALLET_LOCATION = (SOURCE=
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY=C:/wallet_server
)))
sqlnet.ora 服务器:
SQLNET.AUTHENTICATION_SERVICES= (TCPS, BEQ, NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SSL_CLIENT_AUTHENTICATION = TRUE
SSL_CIPHER_SUITES= (SSL_RSA_EXPORT_WITH_RC4_40_MD5)
SSL_VERSION = 0
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = C:/wallet_server)
)
)
TRACE_DIRECTORY_SERVER = C:/app/Kefir/product/12.2.0/dbhome_1/network/trace
trace_level_server = SUPPORT
TRACE_FILE_server = trace_server
sqlnet.ora 客户端:
WALLET_LOCATION = (SOURCE=
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY=C:/client_wallet
)))
SSL_VERSION = 0
SQLNET.AUTHENTICATION_SERVICES = (TCPS,BEQ,NTS)
SSL_SERVER_DN_MATCH = TRUE
SSL_CIPHER_SUITES= (SSL_RSA_EXPORT_WITH_RC4_40_MD5)
SSL_CLIENT_AUTHENTICATION = TRUE
NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)
TRACE_DIRECTORY_CLIENT = C:/client_wallet
trace_level_client = USER
TRACE_FILE_CLIENT = trace_user
tnsnames.ora 客户端
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = 192.168.56.12)(PORT = 2484))
(CONNECT_DATA=
(SERVER = DEDICATED)
(SERVICE_NAME=ORCL)
)
(SECURITY=(SSL_SERVER_CERT_DN="CN=WIN-SFJD57T6M7B.myora.local"))#доменное имя сервера
端口是 5500,即使 listener.ora 设置为 2484。我重新启动监听器,现在端口是 1521。那我该如何更改呢?
该怎么办?
检查了TC使用的教程。检查时,我转向了文档的以下章节:
配置安全套接字层身份验证,数据库网络服务参考。
结果 - 配置检查了可操作性。
分步说明
可用的:
db.local.net
- 数据库服务器app.local.net
- 带有即时客户端的机器的,客户端将通过easy connect连接数据库没有任何问题
在数据库服务器上,您需要为证书创建钱包(也为客户端创建,因为它缺少必要的实用程序),并向其中添加自签名证书:
添加的证书必须导出并作为可信证书添加到另一个钱包:
在数据库服务器上,将以下内容添加到配置文件中:
sqlnet.ora:
监听器.ora:
您需要重新启动侦听器:
参数中未指定的可用数据库服务
SID_LIST_LISTENER
将在一分钟内自动注册。在带有客户端的机器上,您需要以任何可能的方式
scp
从数据库服务器复制钱包(我使用了实用程序)。然后添加配置文件:sqlnet.ora:
tnsnames.ora:
结果,已建立连接的协议为
TCPS
: