【发布时间】:2016-03-10 16:33:00
【问题描述】:
我正在开发一个 Java 应用程序,它通过 HTTP 查询远程服务器上的 REST API。出于安全原因,此通信应切换到 HTTPS。
现在Let's Encrypt 开始了他们的公开测试版,我想知道默认情况下 Java 当前是否可以使用(或确认将来可以使用)他们的证书。
Let's Encrypt 得到了他们的中间地址cross-signed by IdenTrust,这应该是个好消息。但是,我在此命令的输出中找不到这两个中的任何一个:
keytool -keystore "..\lib\security\cacerts" -storepass changeit -list
我知道可以在每台计算机上手动添加受信任的 CA,但由于我的应用程序应该可以免费下载和执行,无需任何进一步的配置,我正在寻找“开箱即用”的解决方案。你有什么好消息要告诉我吗?
【问题讨论】:
-
也可以在这里查看 Let's Encrypt 兼容性letsencrypt.org/docs/certificate-compatibility
-
@potame “使用 Java 8u131,您仍然需要将证书添加到您的信任库”,所以如果您从 Let's Encrypt 获得证书,您需要将获得的证书添加到信任库吗?包括他们的 CA 还不够吗?
-
@mxro 嗨——感谢您引起我的注意。我上面的 cmets 根本不成立(实际上问题比这更复杂,并且与我们的基础设施有关),我将删除它们,因为它们确实只会导致混乱。因此,如果您的 jdk > Java 8u101,Let's Encrypt 证书应该可以正常工作并得到正确识别和信任。
-
@potame 太好了。谢谢你的澄清!
标签: java ssl keystore lets-encrypt ca