据https://wiki.jasig.org/display/CASUM/X.509+Certificates,如何确定服务器将从客户端接受的CA证书列表?
服务器后发送自身标识证书,它则可以发送证书颁发机构,它是愿意接受的证书名称的列表。
我想知道如何确定这个列表是什么,以及如何修改它。
我问的原因是我成功验证(即票务阶段)后我的服务器和我的客户端之间无限重定向,我认为它必须与CAS服务器not recognizing CAS客户端的证书(客户的证书是自签名的)。
据https://wiki.jasig.org/display/CASUM/X.509+Certificates,如何确定服务器将从客户端接受的CA证书列表?
服务器后发送自身标识证书,它则可以发送证书颁发机构,它是愿意接受的证书名称的列表。
我想知道如何确定这个列表是什么,以及如何修改它。
我问的原因是我成功验证(即票务阶段)后我的服务器和我的客户端之间无限重定向,我认为它必须与CAS服务器not recognizing CAS客户端的证书(客户的证书是自签名的)。
如果你想看到这份名单是什么,你可以使用OpenSSL:
echo "" | openssl s_client -connect your.server:port
这将显示有关握手各种消息,包括证书和CA的在CertificateRequest
消息列表。
最终,它由活动X509TrustManager
的getAcceptedIssuers()
方法确定。默认情况下,这将是所有信任锚的主题DN列表(即信任存储区中所有证书的主题DN)。
您的客户证书必须由服务器验证。这通常是在信任管理器握手期间完成的,信任管理器(除非经过调整)将在信任存储库中建立一个链接到已知的CA(或至少已知的证书,如果它是用户证书本身)。
将您的自签名证书添加到您的信任商店应该足够了。它不必是与JVM捆绑在一起的cacerts
文件,您可以复制该文件并使用Apache Tomcat连接器的信任存储设置进行设置。
你的服务器在运行什么? Apache Httpd,基于Java的服务器,IIS? – Bruno 2011-12-14 22:15:30