首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么java同时有cacerts和jssecacerts文件?

为什么java同时有cacerts和jssecacerts文件?
EN

Stack Overflow用户
提问于 2011-04-19 05:59:18
回答 3查看 56.6K关注 0票数 55

我对cacertsjssecacerts文件之间的区别感到非常困惑。

我知道默认情况下,java先查找jssecacerts文件,然后查找cacerts文件。

但是jssecacerts文件的意义是什么呢?

我的理解是,如果需要使用新的信任库,则应该创建cacerts的副本,并将所有新的可信CA添加到该副本中。然后,-Djavax.net.ssl.trustStore系统属性应该引用cacerts的副本(具有新的CA)。这样,在该机器上运行其他java应用程序就不会意外地信任非默认CA。

EN

回答 3

Stack Overflow用户

发布于 2013-06-05 11:46:43

Java™ Secure Socket Extension (JSSE) Reference Guide中,TrustManagerFactory使用以下步骤来尝试查找信任材料:

  1. 系统属性javax.net.ssl.trustStore
  2. java-home/lib/security/jssecacerts
  3. java-home/lib/security/cacerts (缺省情况下附带)

我认为这是基于约定而不是配置概念。在没有额外编码的情况下,将使用cacert。对于额外的私有CA/签名证书,开发人员可以使用第一种或第二种方式,前者可能只包含特定的证书,但后者包含证书的列表。

票数 42
EN

Stack Overflow用户

发布于 2011-04-21 07:05:55

据我所知,cacerts文件是附带的默认文件。

如果存在jssecacerts文件,则只使用该文件-而不是除了cacerts文件之外。

我的建议是:保留cacerts文件,复制到jssecacerts,并在jssecacerts文件中添加任何所需的私有CA/签名证书。

票数 21
EN

Stack Overflow用户

发布于 2011-04-19 09:05:34

问得好。我认为这源于JSSE曾经是一个附加组件的历史事实。JSSE确实允许多个提供者,因此jssecacerts可能只针对JSSE提供者,而其他提供者可能会使用自己的提供者。

但是谁在JSSE之前使用了cacerts就是另一个问题了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5709392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档