当前位置: 首页 > 知识库问答 >
问题:

相互身份验证TLS

祁彬
2023-03-14

在不限制客户端证书的情况下,TLS中的相互身份验证有什么用?

以下是我对使用TLS的客户端/相互身份验证的理解。

1- The client verifies the server cert based on its CA trust store 
2- The server verifies the client cert based on its *CA trust store*

现在rfc5246表示如下

If the client has sent a certificate with signing ability, a digitally-signed
CertificateVerify message is sent to explicitly verify possession of
the private key in the certificate.

这不会实现任何身份验证正确吗?例如,如果我有一个服务器信任由世界各地受信任的CA签署的任何证书,那么为什么还要费心于客户端身份验证呢?

共有1个答案

金烨华
2023-03-14

当服务器获得客户端证书(作为TLS协议的一部分)时,服务器执行所有正常的证书检查,包括链接到受信任的根。为了让服务器信任Foo CA颁发的客户端证书,服务器需要已经在服务器上安装了Foo CA根。

509证书的基石是根CA证书。主机应该只信任它所信任的CA颁发的证书。因此,当管理员安装Fooca的根时,管理员会声明“我信任Foo颁发的证书,并且我信任Foo对证书是否有效并分配给正确的实体进行了适当的检查。”

服务器不需要存储客户机的证书,没有理由这样做。当证书作为TLS的一部分进入时,服务器只需对其进行检查。不需要持久性,并且如果任何故障(包括未安装Foo CA根证书),则连接失败。

那有帮助吗?

 类似资料:
  • 我正在尝试为相互身份验证设置ActiveMQ,以便客户端需要证书才能将消息传递给代理。我在代理上创建了一个密钥库和一个信任库,并导出了一个复制到客户端的证书。在客户端,我也做了同样的事情,尽管我使用的是NMS,所以我只使用导出的证书,我将其添加到代理的信任库中。我还将证书添加到另一个本地计算机可信根证书中。 代理的配置如下: ${activemq.base}/conf/login.config $

  • 我正在尝试为部署在Kubernetes集群中的应用程序启用基于TLS的相互身份验证。 希望将对应用程序的访问限制为只有那些具有受信任客户端证书的用户。 基于某些情况/条件,我还希望吊销特定用户的证书,以便该用户不再能够使用其证书访问应用程序。 我尝试在kuberentes ingress controller(基于nginx)中设置Mutual TLS,方法是添加以下注释。 是包含用于颁发客户端证

  • 我正在尝试在两个LAMP服务器之间进行相互ssl身份验证。 我实际上有3台服务器。一个是主服务器,另外两个是对其进行SOAP调用的客户端。 在主客户端和一个客户端上,我安装了Comodo Postive SSL证书。我可以从该客户端连接到主客户端并成功进行SSL身份验证。 在第二个客户端上,我安装了一个Lets加密证书。我从他们的网站上获得了根证书(并使用https://whatsmychainc

  • 我需要对Web服务(SOAP)应用SSL“相互身份验证”和对网页应用“单向身份验证”,以避免浏览器中存在证书。对于informationg,GUI和SOAP Webservices位于同一个war模块中。 我在Tomcat容器级别使用了SSL相互身份验证: clientAuth=“true”意味着在接受连接之前,客户端(从浏览器和web服务使用者)应该提供有效的证书链。我知道,通过使用client

  • 我如何使我网络中的服务器和客户端不仅验证信任链,而且尊重某种白名单? 也许这在TLS层上是不可行的,这就是我想澄清的。

  • 问题内容: 是否有人对如何使用HTTPClient 4.0.1通过x509证书执行客户端身份验证有任何友好的提示? 感谢您的时间。 问题答案: 这是一些代码,助您一臂之力。该是包含客户端证书的对象。如果服务器使用的是自签名证书,或者包含的cacerts文件中的JVM认可的不是CA所签名的证书,则需要使用。否则,要使用默认的cacerts文件,请传递给truststore参数。