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

AWS RDS Oracle Docker连接报TLS10不被客户端接受如何解决

问题解决方案

错误根因

你使用的Ubuntu 21.04官方源中的OpenJDK 8默认禁用了TLS 1.0、TLS 1.1协议,而当前Oracle RDS实例SSL协商时选择了TLS 1.0版本,因此触发握手失败。

可行解决方案(按推荐优先级排序)

  • 方案1:升级RDS实例TLS配置(最安全,推荐优先使用)
    在AWS RDS控制台调整实例对应的参数组配置:
    1. 修改TLS_VERSION参数,配置为仅支持TLS 1.2及以上版本
    2. 调整SSL_CIPHER_SUITES参数,添加TLS 1.2支持的加密套件
    3. 重启RDS实例使配置生效,无需修改客户端配置即可正常连接
  • 方案2:调整Java客户端安全策略,允许TLS 1.0协议
    修改你挂载的custom.java.security文件:
    1. 找到jdk.tls.disabledAlgorithms配置行,删除配置中的TLSv1、TLSv1.1项,修改后示例如下:
    jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
        DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
        include jdk.disabled.namedCurves
    
    1. 修改Dockerfile中CMD的Java启动参数,将-Djava.security.properties改为两个等号确保完全覆盖默认安全配置:
    -Djava.security.properties==/myfile/security/custom.java.security
    
  • 方案3:启动参数直接指定允许的TLS版本
    在Java启动参数中添加如下配置,强制允许TLS 1.0协议:
    -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
    -Doracle.net.ssl_version=TLSv1
    
  • 方案4:升级Oracle JDBC驱动版本
    如果你使用的是ojdbc7及更老版本的JDBC驱动,默认会优先使用TLS 1.0协议,将驱动升级到ojdbc8 12.2.0.1及以上版本,默认会使用TLS 1.2协议协商,不需要修改安全策略即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:18:03