导致……目前为止,我不是通过SSL进行应用程序安全性方面的专家,但我正在尝试建立一个测试环境,其中包括我们在生产中可能遇到的所有可能情况。 为此,我有一棵证书颁发机构(CA)树,它是各种测试客户端证书和节点/服务器证书(代表各种已发布的Web服务和我们集成的其他应用程序的复杂测试环境)的颁发者。

这些CA的结构如下:根CA,已签名/签发了Sub CA1,Sub CA2和Sub CA3。 然后,这些潜艇已签署/签发了环境中各个节点和客户端的所有证书。

现在是一个问题....在我的应用程序的信任库中,我想信任由Sub CA1和Sub CA2签名的所有内容,但不信任Sub CA3(不受信任的)。 这是否意味着我的信任库应(1)仅包括Sub CA1和Sub CA2,或者(2)应该包括根CA,Sub CA1和Sub CA2?

我不知道在信任库中表示此信任链的正确方法是什么。 将来,我还想添加一个Sub CA4(也由根CA签名/发布),但是将其添加到证书吊销列表(CRL)中以进行测试。

提前,谢谢您对此的任何帮助。 非常感谢。

#1楼 票数:0 已采纳

卡瓦特:我不会去测试这个,所以我希望我的答案是正确的。

我认为您的基本假设是正确的。 我不相信您可以在不编写自定义代码的情况下有选择地撤销信任,因此您的信任库应仅包含完全可信的证书。 因此,请保留根CA,然后选择选项(1)。

如您所见,尝试强制执行这种细粒度的访问控制不适合Java(以及大多数其他系统)基于X509证书的身份验证模型。 它们的基本设计是将身份验证外包给Verisign,Thawte,GoDaddy,GlobalSign等,以获取SSL证书和代码签名证书。 它可以支持其他模型,包括自签名证书,但并非没有很大的前期痛苦和持续的维护难题。

  ask by user376327 translate from so

未解决问题?本站智能推荐:

1回复

每个tomcat中的每个Web应用程序使用不同的密钥库(一个JVM)

我有一个包含许多Web应用程序的tomcat实例。 其中一些需要使用自己的独立密钥库才能通过SSL调用外部Web服务。 到目前为止,我发现使用提供的密钥库的唯一方法是使用: 但是这种方式的问题在于,系统属性的范围是每个java进程的(tomcat为所有webapp共享相同的JVM),
5回复

使用Java标准密钥库是不好的做法

我们一直使用java标准密钥库( $JAVA_HOME/jre/lib/security/cacerts )作为tomcat的可信存储。 并且该tomcat服务器将与其他服务器通信。 最近的OS(AIX)升级显然在$JAVA_HOME/jre/lib/security/cacerts覆盖了该
1回复

更新 - 在Java信任库中续订自签名CA证书

我已经构建了一个Java应用程序,它将Web服务公开给外部授权客户端。 Web服务使用WS-security和证书身份验证。 基本上我们充当自定义证书颁发机构 - 我们在服务器上维护一个java信任库,并为其签名并添加客户端证书。 目前,我们有手动注册流程,要求WS客户端上传其证书签名请求
1回复

信任库是否需要sub-ca证书?

我正在尝试设置分层PKI。 我是否可以创建仅包含根ca证书的信任库,这是否意味着我的应用程序信任由sub-ca证书签署的证书,而该证书又由root ca签名? 顺便说一下,您似乎必须提供整个证书链,包括根证书。 当然,如果根ca是可信的,则不需要发送证书? 我们只想检查下一个证书是否
1回复

通过LDAP SSL的Active Directory-开发环境与Tomcat-Grails Web应用

我们已经使用Grails编写了自己的自定义webap。 网络包括用于在活动目录服务器内更改用户密码的功能。 从开发环境运行webapp时,密码更改功能有效,而在Tomcat服务器下以webapp身份运行时,密码更改功能不起作用。 详细信息:我的理解是,如果要通过AD上的LDAP更改用户
1回复

Tomcat [9.0.26] - 调用安全服务 - TrustStore 与 KeyStore 配置差异和问题

在我们的 stackoverflow 论坛中,Tomcat SSL 配置是一个被大量查询的区域 - 但是,尽管 Tomcat 声称设置很容易,但我仍然感到最不理解! 我正在使用 Tomcat 9.0.26 并且不得不使用第三方 (https) 网络服务。 我的麻烦开始了:)。 首先是我的无知
1回复

如何信任Java中的证书颁发机构?

我的应用程序连接到SSL Web服务,该服务使用证书来验证其身份。 最近,此证书已更改,并且由于未由受信任的颁发机构签名,因此部分应用程序失败。 该服务在未来防止这种情况的建议是我应该开始信任现有证书的签名权限,而不是单独的证书。 如何在Java中实现这一目标? 目前我正在使用k
1回复

在JVM信任库中列出证书

我已经通过系统属性定义了一个自定义信任库: 鉴于VM已经负责加载文件,我想列出那些已加载的证书。 我不想再次将信任库加载到流中并从那里获取证书,而是希望看到VM已经自己加载的那些。 另外,我想在我自己的应用程序中看到它们,而不是使用单独的工具。 我做了一些谷歌搜索,但到目前为止,我