java - PKIX 路径构建失败:我无法修复它请为我们提供一些解决方案
问题描述
我只有.p12文件要调用,当我们被邮递员使用时它工作正常,我们想通过java代码或springboot rest模板调用
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream("/Users/sagir/Downloads/rest-api/src/main/resources/loudcloud-test.p12"),
"rudaN9YzjKwge5gu".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(clientStore, "rudaN9YzjKwge5gu".toCharArray());
KeyManager[] kms = kmf.getKeyManagers();
KeyStore trustStore = KeyStore.getInstance("PKCS12");
trustStore.load(
new FileInputStream(
"/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/security/cacerts"),
"changeit".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(trustStore);
TrustManager[] tms = tmf.getTrustManagers();
SSLContext sslContext = null;
sslContext = SSLContext.getInstance("TLS");
sslContext.init(kms, tms, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
URL url = new URL(null, "url",
new sun.net.www.protocol.https.Handler());
HttpURLConnection myURLConnection = (HttpURLConnection) url.openConnection();
解决方案
推荐阅读
- ruby-on-rails - 从 rack-attack 6.3.1 升级到 6.5.0 导致自定义方法出错
- c# - 如何使int随机数
- wordpress - Woocommerce - 如果我以编程方式设置属性,则过滤器不起作用
- python - keras - 层 model_131 需要 7 个输入,但它接收到 1 个输入张量
- javascript - glide js - 使用控件后更改步数(幻灯片)
- android - 如何启用 EditText 以输入特殊字符,如 ~!#$%^&*()_-{[}]?和其他 app:endIconMode="password_toggle" 在android中启用?
- angular - 如何从 Angular 应用程序打开 PDF 文件
- json - 通过返回类型的请求的通用 Json 反序列化器
- java - 如何使用maven在vscode中生成grpc java文件?
- python - pandas 在同一列中设置美元金额和百分比