gpt4 book ai didi

java - 带有 CA 签名证书的 2 路 TLS

转载 作者:行者123 更新时间:2023-11-29 08:27:36 26 4
gpt4 key购买 nike

我的任务是在 Java 上下文中实现双向 TLS。我找到了一个示例 ( https://www.opencodez.com/java/implement-2-way-authentication-using-ssl.htm ) 并且能够自己将它作为演示放在一起。就像这个例子一样,我在网上能找到的所有其他例子都是使用自签名证书。但是现在问题来了,如果我们使用第三方 CA 签名证书怎么办。它将如何影响这个演示?还请考虑这两种情况:

  1. 在服务器端,我只关心客户端是否由 CA 认证。比如一个全新的客户端,之前服务器不知道,只要能拿到CA的证书,服务器就会提供服务;
  2. 这是点对点的关系,不仅客户端需要出示CA颁发的证书,服务器也会检查证书以查看客户端是否在预定义的实体列表中有资格获得服务;

那么对于以上两种不同的情况,我应该如何分别配置我的 keystore 和信任库呢?

最佳答案

两端的 CA 签名证书的不同之处在于,除非 CA 对 JRE 的内置信任库是未知的,否则您不需要从 keystore 进行任何导出并导入到信任库,并且您不需要您自己的自定义信任库。在每种情况下,您只需将 CA 的 bundle 和由您自己的 CSR 生成的 CA 签名证书导入您自己的 keystore 。

the server would also check the certificate to see if the client is on a predefined list of entities to be eligible for the service.

正如您在问题中所说,这是服务器应用程序在连接完成后必须执行的授权步骤。它不是 keystore /信任库设置的一部分,它仅与身份验证有关。不要混淆这些步骤。服务器(或它前面的 Apache HTTPD)将检查证书的主题 DN 以查看该 DN 是否具有适当的角色来使用所请求的服务(例如 URL)。这可以内置到 Apache HTTPD 或 Tomcat CMA 中。

关于java - 带有 CA 签名证书的 2 路 TLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51295359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com