【问题标题】:How to set up mySql JDBC connection with SSL如何使用 SSL 设置 mySql JDBC 连接
【发布时间】:2017-04-21 16:20:34
【问题描述】:
jdbc:mysql://localhost:3306/MyDb?verifyServerCertificate=true&useSSL=true&requireSSL=true

我从 mySql 服务器下载了公共证书并将其放入 cacerts 中,如下所示:

keytool.exe -import -alias mysql_dev \
    -keystore /c/dev/tools/Java/jre1.8.0_131/jre/lib/security/cacerts \
    -file rds-combined-ca-bundle.pem

我使用keytool 生成了新密钥,如下所示:

keytool.exe -genkeypair -alias adam \
               -keypass changeit \
               -keysize 1024 \
               -keystore /c/dev/.secure/haa2xt.jks \
               -storepass changeit

所以现在我可以看到 Java 正在从密钥库中获取我的密钥和从信任库中获取服务器证书,但我仍然收到 PKIX 错误。

PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

我将此调试参数添加到命令行并获得了一些看起来不错的更多信息,并且我可以在其中看到 mySql 证书。

-Djavax.net.debug=all

trustStore 为:c:\dev\tools\java\jdk1.8.0_131\jre\lib\security\cacerts

trustStore 类型是:jks

[.....]

keyStore 是:C:/dev/.secure/haa2xt.jks

keyStore 类型为:jks

keyStore 提供者是:

初始化密钥库

初始化 SunX509 类型的密钥管理器

*** 找到以下密钥:adam

我做错了什么?

【问题讨论】:

    标签: java mysql ssl


    【解决方案1】:

    原来keytool import命令只会在PEM文件有多个证书的时候导入第一个证书。

    这也是我检查的唯一一个,所以当实际上我还没有导入大约 15 个时,我认为这很好。

    我用这个工具将它们全部导入:https://github.com/use-sparingly/keyutil

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 2021-10-27
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      相关资源
      最近更新 更多