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

Jetty部署Web应用通过TCPS连接Oracle数据库遇SSL握手错误求助

TCPS协议连接Oracle数据库JDBC报错解决方案

核心问题定位

JDBC Thin驱动默认不会自动读取Oracle客户端$ORACLE_HOME/network/admin下的sqlnet.ora配置,导致加密套件、钱包路径等参数未生效,进而引发SSL握手失败。以下是针对性解决步骤:


1. 显式配置JDBC连接属性

在代码的连接Properties中直接添加钱包位置、加密套件、SSL版本参数,绕过对sqlnet.ora的依赖:

odbConnectionData.put("user", username);
odbConnectionData.put("password", odb.getPassword());
// 添加TCPS相关配置
odbConnectionData.put("oracle.net.wallet_location", "(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/your/wallet)))");
odbConnectionData.put("oracle.net.ssl_cipher_suites", "TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA");
odbConnectionData.put("oracle.net.ssl_version", "TLSv1.2");

注意替换/path/to/your/wallet为实际钱包目录路径。

2. 确保Jetty进程权限

  • 检查钱包目录(含父目录)的读权限,Jetty运行用户需具备访问权限
  • 钱包文件(cwallet.sso、ewallet.p12等)权限需设置为Jetty用户可读(如chmod 640 cwallet.sso)

3. 修正Java环境SSL限制

编辑$JAVA_HOME/jre/lib/security/java.security,检查jdk.tls.disabledAlgorithms配置:

  • 移除列表中与你配置的加密套件、TLSv1.2相关的禁用项
  • 若不确定,可临时添加JVM启动参数-Djavax.net.debug=ssl,打印SSL握手详细日志,定位具体被禁用的协议/套件

4. 可选:在JDBC URL中嵌入配置

将钱包和SSL参数直接写入URL,替代Properties配置:

url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=" + serverName + ")(PORT=" + portNumber + "))(CONNECT_DATA=(SERVICE_NAME=" + serviceName + "))(SECURITY=(WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/your/wallet))))(SSL_CIPHER_SUITES=(TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,...))))";

5. 验证驱动版本一致性

确保Web应用使用的ojdbc8.jar是Oracle 19c客户端$ORACLE_HOME/jdbc/lib下的对应版本,避免驱动版本不匹配导致的兼容性问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:58:15