You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置SSL加密Oracle JDBC连接及Tomcat启动TNS报错排查问询

错误根因排查与修复方案

1. 直接报错原因:JDBC URL语法错误

当前JDBC URL结尾缺失闭合右括号,导致Oracle解析TNS字符串时无法匹配键值对,直接触发TNS-04610错误。
修复后的正确URL:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=orcl)))

注意:URL内不要留多余空格,所有括号必须完全配对。

2. 其他需要修正的配置项

2.1 sqlnet.ora SSL版本配置错误

当前配置的SSL_VERSION = 3.0是已被废弃的SSLv3协议,存在安全漏洞,且Oracle新版JDBC驱动默认已禁用该协议,会导致握手失败。
修改为使用TLS协议:

SSL_VERSION = 1.2

如果是较老的Oracle版本,可兼容配置为SSL_VERSION = 1.0或SSL_VERSION = 1.1,不建议继续使用SSLv3。

2.2 监听重启验证

修改完服务端配置文件后,必须重启监听生效,执行以下命令验证监听状态:

lsnrctl stop
lsnrctl start
lsnrctl status

确认输出中能看到TCPS协议的2484端口处于监听状态。

2.3 可选优化:简化JDBC配置

如果不想在启动参数里配置全局JKS路径,也可以直接把SSL参数写到JDBC URL中,避免和其他应用的SSL配置冲突:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=orcl)))?javax.net.ssl.trustStore=E:\\app\\wallet\\oracle_ts.jks&javax.net.ssl.trustStorePassword=core@123&javax.net.ssl.trustStoreType=JKS&oracle.net.ssl_version=1.2&oracle.net.ssl_server_dn_match=false

3. 完整验证步骤

  1. 重启Oracle监听,确认TCPS端口正常监听
  2. 修正JDBC URL的括号错误,更新sqlnet.ora的SSL版本配置
  3. 重启Tomcat验证连接是否正常
  4. 如果仍然报错,可以先使用Oracle客户端的sqlplus测试TCPS连接:
sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=orcl)))

如果sqlplus也无法连接,说明是服务端配置问题,否则为JDBC端参数配置问题。

内容的提问来源于stack exchange,提问作者mres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:33:02