首页 文章

具有多个证书的CXF SSL安全Web Service客户端

提问于
浏览
4

我有一个Java CXF客户端,它通过相互身份验证连接到SSL安全Web服务 . 我在客户端正确配置了我的密钥库和我的信任库,它运行正常 .

我关心的是,我的密钥库只包含一个客户端证书,而在CXF配置中,不能说"ok for this SSL communication you'll use this certificate" .
因为我只有一个证书,所以选择CXF durign SSL握手的好证书并不困难 . 但是,此客户端将部署在一个环境中,在该环境中,它将与具有自己的证书的多个可能客户端一起使用,并且每个客户端将由相同的证书颁发机构签名 . 当服务器要求由特定权限签名的客户端证书时,将无法区分一个证书与另一个证书 .
如何告诉CXF(或Java)在此上下文中使用正确的证书?

我是否需要构建与客户端证书一样多的SSL上下文? (即,具有N个密钥库,每个密钥库仅包含一个证书) . 或者有没有办法(在CXF conf或Java中)说“在这种情况下使用此证书”?

在此先感谢您的帮助 .

2 回答

  • 0

    所有证书必须指向同一客户,否则CA将在其职责中取消选择 . 所以他们应该都有相同的主题X500Principal . 那你为什么需要特定的证书呢?所有这些客户端都标识相同的客户端,因此从身份验证的角度来看,它们都是等效的 .

    它开始听起来好像您想要使用特定证书进行授权,而不仅仅是通过身份验证 Build 身份 . 如果是这样,这是错误的方法,滥用PKI . 获得经过身份验证的身份后,授权是一个应用程序控制的步骤:获取对等证书的标识并查找授权数据库以查看是否允许该身份访问应用程序的这一部分 . 唐't try to use a cacerts file as an authorization database, that'不是它的用途 .

  • 0

    我之前没有使用WSIT做过动态别名选择(即一个密钥库,许多私钥条目) . 有关详细信息,请参见this article . (如果那篇文章不够,请告诉我 - 如果您需要,我可以发布更多细节)

相关问题