java - 运行 JAVA 应用程序 - 如何在那里管理“受信任的”证书根?
问题描述
长话短说 - 我需要验证 XML 签名,其中一个步骤是验证用于签署 XML 的 PUBLIC 证书是由已知根之一颁发的。
这个问题与我的完全相同:How to check if public X509Certificate istrusted - 但答案的问题是我不想像他们那样“硬编码”任何信任存储文件和密码:
final File file = new File("C:\\TMP\\jssecacerts");
InputStream inStream = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance("JKS");
//String password = "";
//keystore.load(inStream, password.toCharArray());
keystore.load(inStream, null);
jre/lib/security/cacerts
我希望我可以重用每个 JAVA 安装附带的默认内置文件。所以我尝试了
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, null);
但它是空的。
问题如下:
- 请确认
jre/lib/security/cacerts
每次运行 JAVA 程序时 JAVA 将文件加载到内存中。我很难相信它没有 - 否则所有 HTTPS 通信将如何工作? - 如何使用此文件验证证书?或者为了简化 - 我如何才能访问受信任的证书 KeyStore 以便我可以应用验证逻辑?
解决方案
推荐阅读
- cockroachdb - 关闭 cockroachdb 单节点集群中的时间序列数据
- javascript - 为什么在循环一个空数组后在 angular12 中出现“无法编译错误”?
- powerbi - PowerBI:地图可视化未识别巴西“帕拉”州
- razor - 发布后是否可以在 MVC5 网站页脚中显示版本号?
- symfony - 带有 GetSetMethodNormalizer 的 Symfony 序列化程序返回一个空数组而不是日期
- flutter - Flutter Dio 在一个按钮中发出两个请求,然后错误“异步暂停”
- java - 在 Android Studio 中不打开浏览器运行 URL
- nginx - 查看 NGinx 配置以进行 TLS 处理
- r - 如何在 R 中的 spplot 上添加阴影多边形?
- react-native - 预期的根减速器功能。而是收到:反应本机应用程序中的未定义错误