相关疑难解决方法(0)

如何将证书链添加到密钥库?

我有证书链的文件 - certificate.cer:

subject=/C...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我需要将这个证书链添加到密钥库.
我所做的:

openssl x509 -outform der -in certificate.cer -out cert.der
keytool -v -importcert -alias mykey -file cert.der -keypass <passwd> -keystore keystore -storepass <passwd> -alias <myalias>
Run Code Online (Sandbox Code Playgroud)

结果我在密钥库中只有1个证书.
但应该有3.
什么可能是错的?

解决方案:
CA向我发送了PKCS#7格式的证书.
我将它们存储在certificate.p7b文件中,然后通过以下命令成功将它们添加到密钥库:

keytool -import -trustcacerts -file certificate.p7b -keystore keystore -storepass <mypasswd> -alias "myalias"
Run Code Online (Sandbox Code Playgroud)

java openssl certificate keystore keytool

30
推荐指数
2
解决办法
12万
查看次数

Java上的SSL异常:Path不与任何信任锚链接

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

但我得到以下内容Exception:

java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
Run Code Online (Sandbox Code Playgroud)

我可以将此异常追溯到MySQL Connector/J课堂ExportControlled.javaline 297:

CertPathValidatorResult result = this.validator.validate(certPath, this.validatorParams);
Run Code Online (Sandbox Code Playgroud)

然后我不能再往下走,因为这会进入JRE安全类,比如CertPathValidator.

由于我正在使用MySQL Connector/J整个SSL魔法,我的双手被束缚,我不知道发生了什么或如何解决这个问题.该证书工作正常的MySQL WorkbenchIntelli J IDEA Database,所以我不知道为什么它现在正在拒绝.

我该如何解决?

java ssl mysql-connector amazon-web-services amazon-rds

5
推荐指数
4
解决办法
5357
查看次数