我知道这个问题已被问过多次,但我似乎仍然无法回避它。我试图从我的 SpringBoot 应用程序连接到 Azure-SQL
数据库并不断遇到此错误:
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:783) ~[na:1.8.0_251]
Caused by: java.security.UnrecoverableKeyException: Password verification failed
我有一个 Rapidssl.jks 文件,我将其添加到应用程序的 VM 参数中,以绕过类似于 "PKIX path building failed" and "unable to find valid certification path to requested target" 的内容
我使用的是 MacBook
,并尝试使用以下方法创建自签名证书:
sudo keytool -export -keystore rapidssl-36.1.2.jks -file selfsign.crt
并使用以下命令导入:sudo keytool -import -keystore "cacerts"-file "/Users/Documents/cert/selfsign.crt"-aliasrapidssl
在/Library/Java中运行/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/security
目录。我完成了这些步骤,但仍然无法克服错误。有什么建议/推荐吗?
我使用的是 Java 8 (zulu jdk)、SpringBoot:2.0.4-RELEASE、MacBook OS Catalina 10.15.7
最佳答案
命令中的引号似乎是问题所在:
sudo keytool -import -keystore "cacerts" -file "/.../selfsign.crt" ...
keystore cacerts
以及文件
不应位于引号之间。
您已经在正确的路径(jre/lib/security)上执行它,所以试试这个:
sudo keytool -import -keystore cacerts -file /.../selfsign.crt -alias rapidssl
keytool 命令示例:
关于java - keystore 被篡改,或密码不正确 - Java Springboot应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65854646/