2路SSL - 客户端证书未发送到服务器

Y.S*_*Y.S 4 ssl force.com client-certificates wireshark visualforce

我在force.com平台上有一个部署到salesforce的应用程序,我正在尝试为其配置双向SSL.

即我希望从SF发送到我的服务器的每个请求,将发送客户端证书.

我在SF上进行了必要的配置以便发送证书,但是我仍然从服务器获得403.7,这意味着:禁止,需要客户端证书.

我在服务器上安装了wireshark,捕获流量以查看2路ssl握手,并且我试图在服务器中找到hello消息,它告诉客户端客户端证书应该对应的可信CA,但我有难以找到它.我怀疑这就是客户端不发送证书的原因.

任何人都可以指出我在服务器的哪个方面你好吗?或者可能在另一个数据包捕获?

提前致谢.

在此输入图像描述

客户密钥交换记录:

在此输入图像描述

Ste*_*ich 5

添加了握手捕获的屏幕截图。你能指出我应该去的地方吗?–

见数据包#31。它包含证书申请。数据包#33还包含来自客户端的证书,因此原因不是客户端没有发送证书,而是服务器不喜欢证书,因为验证失败或证书不足以授权请求的资源。您可能会从服务器日志中获取更多信息。

  • 请参阅我添加的附加屏幕截图,参考客户端密钥交换。它显示证书长度为 0,这就是为什么我认为这应该是证书消息,但证书不包含在其中。我错了吗? (2认同)

Bru*_*uno 5

这里,服务器发送Certificate Request消息,客户端发送Certificate消息作为响应,但该消息包含0个证书.

通常,当客户端无法选择要使用的客户端证书时,会发生这种情况.要么没有正确配置以使用任何证书,要么找不到由其中一个可接受的CA颁发的证书.

查看Certificate Request数据包并检查其certificate_authorities列表.这是服务器愿意接受的CA专有名称(DN)的列表.

不管怎样,客户端都需要找到一个客户端证书,用它可以构建一个链接到那些DN.在最简单的情况下,可以使用由此类DN发布的客户端证书.否则,客户端可能必须构建从客户端证书到这样的DN的链,它需要具有必要的中间CA证书才能这样做.(如何完成这取决于客户端的配置机制.)

如果中间CA证书是必需的并且在客户端不可用,则可能需要将服务器配置为接受它们并在其中公布它们Certificate Request.