gpt4 book ai didi

java - 如何使用 SSL 设置 mySql JDBC 连接

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:35 26 4
gpt4 key购买 nike

jdbc:mysql://localhost:3306/MyDb?verifyServerCertificate=true&useSSL=true&requireSSL=true

我从 mySql 服务器下载了公共(public)证书并将其放入 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 生成了新 key :

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

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

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

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

-Djavax.net.debug=all

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

trustStore type is : jks

[.......]

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

keyStore type is : jks

keyStore provider is :

init keystore

init keymanager of type SunX509

*** found key for : adam

我做错了什么?

最佳答案

事实证明,keytool import命令在有多个证书时只会导入PEM文件中的第一个证书。

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

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

关于java - 如何使用 SSL 设置 mySql JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com