执行摘要:如何使用 Java 代码将新的根证书安装到 Java 中?
我们有一个桌面应用程序可以访问各种网络服务。最近,其中一位将其 SSL 证书切换为由 Trustwave 签名的证书。虽然常规 Internet 浏览器接受 Trustwave SSL 证书,但 Java 似乎没有附带必备的根证书,并且我们无法访问给定的 Web 服务并显示以下错误消息:
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
通过说服供应商切换回威瑞信,我们得到了暂时的缓刑,但当他们切换回威瑞信时,我们必须做好准备。所以我需要我们的桌面软件根据需要自动安装 Trustwave 根证书。我们的客户不够精通技术,无法使用 keytool 命令,我宁愿不编写脚本,因为这让我觉得这是一个脆弱的解决方案(Mac 和 PC 的单独实现,与 Vista 执行限制的斗争,找不到正确的 JRE 安装到, ETC)。
我想 keytool 在内部使用 Java。我可以在 Java 中使用什么命令来复制 keytool 的功能并以编程方式安装根证书?