如何在Azure Data Factory Oracle链接服务中通过Oracle连接管理器启用SSL
Oracle连接管理器SSL连接失败的配置排查与解决
一、确认Oracle连接管理器(CMAN)的SSL基础配置
- 检查
cman.ora是否配置了TCPS监听端点,添加类似以下的监听地址:LISTENER_CMAN = (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCPS)(HOST=你的CMAN主机地址)(PORT=SSL端口号)) ) - 配置CMAN的SSL钱包/密钥库路径,确保CMAN有权限访问该目录:
SSL_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/cman-ssl-wallet))) - 根据DBA要求设置客户端认证开关,若无需客户端证书则设为
FALSE:SSL_CLIENT_AUTHENTICATION=FALSE - 检查CMAN的路由规则,确保允许TCPS协议的请求转发,在
RULE_LIST中添加:RULE_LIST=( (RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept)(PROTOCOL=tcps)) )
二、客户端SSL参数配置
- 配置客户端
sqlnet.ora(需确保TNS_ADMIN环境变量指向该文件所在目录):- 启用SSL认证服务:
SQLNET.AUTHENTICATION_SERVICES=(BEQ,TCPS) - 指定SSL版本(需与数据库/CMAN端一致,比如TLS 1.2):
SSL_VERSION=TLSv1.2 - 配置客户端SSL钱包路径(Oracle官方推荐使用Oracle Wallet而非纯OpenSSL密钥库,兼容性更好):
SSL_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/client-ssl-wallet))) - 若无需客户端证书认证,添加:
SSL_CLIENT_AUTHENTICATION=FALSE
- 启用SSL认证服务:
三、正确配置SSL连接串
确保连接串使用TCPS协议,指向CMAN的SSL端口,示例如下:
ORCL_SSL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = 你的CMAN主机地址)(PORT = SSL端口号)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 目标数据库服务名) ) )
四、证书验证与兼容性检查
- 将数据库/CMAN的根CA证书导入客户端信任库:
使用Oracle自带的orapki工具导入(若用Oracle Wallet):orapki wallet add -wallet /path/to/client-wallet -cert /path/to/root-ca.crt -trusted_cert - 若证书主机名与连接地址不匹配,可临时关闭DN匹配(生产环境建议修正证书):
SSL_SERVER_DN_MATCH=FALSE
五、排查测试
- 用
tnsping测试SSL连接串的可用性:tnsping ORCL_SSL - 启用SQLNet客户端跟踪定位错误:
在sqlnet.ora中添加:
查看跟踪日志中的具体错误信息(如证书链不完整、协议版本不兼容等)。TRACE_LEVEL_CLIENT=16 TRACE_DIRECTORY_CLIENT=/tmp/sqlnet-trace
内容的提问来源于stack exchange,提问作者azuresnowflake1
相关产品推荐
相关产品推荐

