1
2
我没有足够的观点发表评论,但我想同意@Jay的观点。您可能需要将此第三方库配置为信任DoD根证书,以便当CAC用户提供其客户端证书时,您的应用程序可以信任它。 国防部根证书是公开的: http://dodpki.c3pki.chamb.disa.mil/rootca.html 另外,如果您观察到的行为是客户端甚至没有收到选择客户端证书的提示,或者您没有观察到在数据包跟踪中发送的客户端证书,那么这也可能是因为您的服务器不信任DoD CA。当行为良好的服务器请求客户端证书时,它还公布了它信任的CA的可分辨名称(dn)。然后,行为良好的客户机将检查该列表,并将这些名称与它所拥有的cleint证书的颁发者进行比较。如果没有匹配,那么客户端将发送一个“null”证书。我知道IIS/Apache和Firefox/IE/Chrome是这样的。然而,Opera似乎并没有根据广告发布者的不同而有所区别,它会发送任何客户散布的证书。 |
2
0
最后但并非最不重要的一点是,如果您的软件使用PKCS#11,那么只要您的卡有一个PKCS#11提供商(有几个CAC模块和“通用”供应商卡通常也有一个),您就不需要关心实际的卡,因为PKCS#11会将细节抽象掉。 |