如何确定服务器将从客户端接受的CA证书列表?

时间:2011-12-14 21:56:17

标签: ssl ssl-certificate cas

根据https://wiki.jasig.org/display/CASUM/X.509+Certificates

  

在服务器发送标识自身的证书后,它可以发送一个愿意接受证书的证书颁发机构名称列表。

我想知道如何确定这个列表是什么,以及如何修改它。

我问的原因是我在验证成功后(即票证阶段)在服务器和客户端之间获得了无限重定向,我认为它与CAS服务器not recognizing有关。 CAS客户端证书(客户证书是自签名的)。

1 个答案:

答案 0 :(得分:0)

如果您想查看此列表是什么,可以使用OpenSSL:

echo "" | openssl s_client -connect your.server:port

这将显示有关握手的各种消息,包括CertificateRequest消息中的证书和CA列表。

最终,它取决于有效X509TrustManagergetAcceptedIssuers()方法。默认情况下,这将是所有信任锚的主题DN列表(即信任库中所有证书的主题DN)。

您的客户端证书必须由服务器验证。这通常在信任管理器握手期间完成,信任管理器(除非经过调整)将在信任存储中为已知CA(或至少已知的证书,如果它是用户证书本身)构建链。

将自签名证书添加到信任存储区就足够了。它不必是与JVM捆绑在一起的cacerts文件,您可以复制它并使用Apache Tomcat连接器的信任存储设置来设置它。