java - 密钥库不识别证书
问题描述
我一直在努力将 2 个 SSL 证书嵌入到我的 java 代码中,下面的代码不会产生任何错误,但是当我尝试访问需要这些证书的 API 时出现错误。我显然有问题,但是在花费大量时间之后,我无法解决问题所在。
这是我正在使用的代码,下面的错误
InputStream certInIssue =
ClassLoader.class.getResourceAsStream("/resources/SSLCerts/Certificate1.cer");
InputStream certInRoot =
ClassLoader.class.getResourceAsStream("/resources/SSLCerts/Certificate.cer");
try {
KeyStore keystore;
keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(null, null);
String password = "R9NNXVSqemsghmvZxkcWTfzCr3pDv5D2";
String tempDir = "C:/Temp/";
BufferedInputStream bis = new BufferedInputStream(certInIssue);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
while (bis.available() > 0) {
java.security.cert.Certificate cert = cf.generateCertificate(bis);
keystore.setCertificateEntry("SSLIssue", cert);
}
bis = new BufferedInputStream(certInRoot);
cf = CertificateFactory.getInstance("X.509");
while (bis.available() > 0) {
java.security.cert.Certificate cert = cf.generateCertificate(bis);
keystore.setCertificateEntry("SSLRoot", cert);
}
certInIssue.close();
certInRoot.close();
OutputStream out = new FileOutputStream(tempDir + "keyserverstore.keystore");
keystore.store(out, password.toCharArray());
out.close();
keystore.load(new FileInputStream(tempDir + "keyserverstore.keystore"),
password.toCharArray());
} catch (KeyStoreException | CertificateException | IOException | NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但我得到了这个例外:
io.joshworks.restclient.http.exceptions.RestClientException:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决方案
推荐阅读
- javascript - 在 React JS 中调用 jsPlumb.ready 时出现“无法读取未定义的属性 'ready'”
- r - 使用循环在图形上绘制两条或多条线
- postgresql - 使用多个内部和外部联接加速查询
- python - 如果值一次是字符串/整数 dtypes,如何删除 nan 列?
- git - Windows 共享网络文件夹上的 git commit
- python - 将单个数据框列中的不同比例与单个箱线图进行比较
- python - Python 陷入 If 但返回不工作
- python - 使用 Python PIL 时优化保存时间
- c++ - (C++) 当我被教导分离声明和实现时,为什么我看到一些程序员用类来做这件事?
- c - 函数指针,其签名包含一个参数,该参数的类型是指向与第一个函数指针相同类型的指针