服务器客户端身份验证请求主题可分辨名称,但客户端过滤器具有颁发者可分辨名称

时间:2017-08-15 22:30:46

标签: java tomcat ssl mutual-authentication ssl-client-authentication

目前我在服务器和客户端上启用相互SSL时遇到问题。

在服务器端,我使用启用ClientAuth配置tomcat并将客户端的证书配置到信任库。

所以在ssl握手期间,我可以看到服务器的证书请求:

 [java] *** CertificateRequest
   [java] Cert Types: RSA, DSS, ECDSA
   [java] Supported Signature Algorithms: SHA512withECDSA, SHA512withRSA, SHA384withECDSA, SHA384withRSA, SHA256withECDSA, SHA256withRSA, SHA256withDSA, SHA224withECDSA, SHA224withRSA, SHA224withDSA, SHA1withECDSA, SHA1withRSA, SHA1withDSA
   [java] Cert Authorities:
   [java] <CN=https-test.domain.com, O=Domain.com, L= XX, ST=XX, C=US>

我们可以看到服务器正在请求具有主题区分名称的证书。 但在客户端,当客户端过滤密钥时,它会将DN视为颁发者DN,请参阅此处的代码:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/security/ssl/SunX509KeyManagerImpl.java#378

所以这会导致问题:

[java] Warning: no suitable certificate found - continuing without client authentication
   [java] *** Certificate chain
   [java] <Empty>
   [java] ***

所以握手失败了。

以下是一些证书信息:

Issuer: DC=com, DC=domain, CN=Domain. com Security
Subject: C=US, ST=XX, L=XX, O=Domain.com, CN=https-test.domain.com

我的问题是为什么服务器请求具有主题DN的客户端证书,但客户端将使用IssuerDN过滤?

为了让他们成功连接,我需要使用客户端的父证书配置我的服务器的信任库,其主题DN与 发行者:DC = com,DC =域,CN =域。 com安全

对此有什么看法?我可能对此有一些误解,但仍想知道原因。

0 个答案:

没有答案