【问题标题】:javax.net.ssl.SSLException: Unsupported record version Unknown-0.0 error on a MySQL SSL connection on Amazon RDS and HikariCp datasource configjavax.net.ssl.SSLException:Amazon RDS 和 HikariCp 数据源配置上的 MySQL SSL 连接出现不支持的记录版本 Unknown-0.0 错误
【发布时间】:2017-04-16 23:14:54
【问题描述】:

我能够分解 rds-combined-ca-bundle.pem 证书文件并将每个文件分别导入密钥库。然后我添加了 -Djavax.net.ssl.trustStore=path_to_truststore_file 和 -Djavax.net.ssl.trustStorePassword=password 进入 jvm 选项。它使用 jndi 配置在一个应用程序上工作,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/contextname" unpackWAR="true" useNaming="true" swallowOutput="false">
  <Resource removeAbandoned="true"
            removeAbandonedTimeout="60"
            name="jdbc/data" auth="Container"
            type="javax.sql.DataSource"
            maxActive="200"
            maxIdle="60"
            maxWait="20000"
            username="rootuserssl"
            password="rootusersslpassword"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://myinstance.123456789012.us-east-1.rds.amazonaws.com:3306/dbname?autoReconnect=true&amp;verifyServerCertificate=true&amp;requireSSL=true&amp;useSSL=true"/>
</Context>

但是,在一个使用 HikariCp 的应用程序上,它会生成错误 javax.net.ssl.SSLException: Unsupported record version Unknown-0.0。下面是配置。

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/contextnametwo" unpackWAR="true" useNaming="true" swallowOutput="false">
    <Resource name="jdbc/data" auth="Container"
       driverClassName="com.mysql.jdbc.Driver"
      jdbcUrl="jdbc:mysql://myinstance.123456789012.us-east-1.rds.amazonaws.com:3306/dbname?verifyServerCertificate=true&amp;useSSL=true&amp;requireSSL=true"
      factory="com.zaxxer.hikari.HikariJNDIFactory"
      type="javax.sql.DataSource"
      maximumPoolSize="50"
      connectionTestQuery="SELECT 1"
      idleTimeout="300000"
      maxLifetime="600000"
      dataSource.implicitCachingEnabled="true"
      dataSource.cachePrepStmts="true"
      dataSource.prepStmtCacheSize="250"
      dataSource.prepStmtCacheSqlLimit="2048"
      dataSource.useServerPrepStmts="true"
      catalog="dbname"
      username="rootuserssl"
      password="rootusersslpassword"
 />
</Context>

我在使用 HikariCp 的应用程序上做错了什么?

【问题讨论】:

    标签: java amazon-ec2 jndi hikaricp sslexception


    【解决方案1】:

    通过使用 mariadb 连接器 (https://downloads.mariadb.org/connector-java/) 而不是 mysql 解决了这个问题。像魅力一样工作。

    【讨论】:

    • MariaDB JDBC 驱动又给了我一个错误:java.net.SocketException: Software caused connection abort: recv failed
    猜你喜欢
    • 2018-08-03
    • 2014-06-13
    • 1970-01-01
    • 2017-06-27
    • 2017-04-16
    • 2019-07-25
    • 2015-04-25
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多