gpt4 book ai didi

java - Java : Path does not chain with any of the trust anchors 上的 SSL 异常

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:36 35 4
gpt4 key购买 nike

我正在尝试使用 MySQL Connector/JJava 中与我的 MySQL database 建立 SSL 连接(版本 5.1.45)和此 AWS RDS 证书:https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

但我收到以下异常:

java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

我可以将此异常追溯到 第 297 行 上的 MySQL Connector/JExportControlled.java:

CertPathValidatorResult result = this.validator.validate(certPath, this.validatorParams);

然后我不能再往下说了,因为它进入了 JRE 安全类,例如 CertPathValidator

因为我正在使用 MySQL Connector/J 来执行整个 SSL 魔术,所以我的双手被束缚了,我不知道发生了什么或如何解决这个问题.该证书在 MySQL WorkbenchIntelli J IDEA Database 上运行良好,所以我不知道为什么它现在被拒绝了。

我该如何解决这个问题?

最佳答案

我在经历了很多令人头疼的问题后解决了这个问题。信任库需要拥有链的所有证书,我使用的是 https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem ,从理论上讲,它拥有所有证书,但是当您将其导入 keystore 文件时,keytool 会忽略除第一个证书之外的所有证书,因此我的 keystore 中只有根证书,而不是根证书和我实际需要的 AWS 区域证书。

目前,没有办法bach导入所有证书,我尝试了几种方法,包括转换为PKCS7(支持证书链),但是keytool需要每个证书一个别名,所以你需要导入每个证书并给它一个别名,一次一个。

您可以制作一个程序来调用keytool 并一次加载一个证书,或者您可以像我一样更懒一点并使用KeyStore Explorer。 .您将需要选择创建一个新的 keystore 文件并使用 Examine File 选项打开捆绑的 pem 证书,并为其中的每个证书选择 import,这会将选定的证书导入到新的 keystore 中。最后,您只需为您的 keystore 文件定义一个密码并保存即可。

关于java - Java : Path does not chain with any of the trust anchors 上的 SSL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286407/

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