我正在设置对用户使用客户端证书登录的支持。不幸的是,IIS拒绝确认任何未链接到已安装的CA (see this article)的证书。
由于该功能的实现只是为了方便用户,所以允许任何客户端证书都是很好的。有什么方法可以做到这一点吗?
我的服务器运行的是Windows Server2003和IIS6,但在本地运行的IIS7上的行为没有什么不同。如果可以自定义IIS 7以支持任何客户端证书,我将能够进行更改(假设没有可用的IIS 6解决方案)。
发布于 2008-10-04 21:35:36
发布于 2008-10-29 19:57:23
实现这个类:
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{
public TrustAllCertificatePolicy() {}
public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,WebRequest req, int problem)
{
return true;
}
}使用以下代码行设置它。之后,任何证书,无论是否过期,名称不匹配等将被接受。
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();发布于 2008-10-04 21:43:43
我认为您可以通过certmgr命令添加一个新的根CA证书
certmgr --add -c -m Trust <CA_cert_DER_fmt>注意:与UNIXes不同,Windows同时管理所有应用程序的证书,这可能会带来安全隐患,因此要注意这一点
https://stackoverflow.com/questions/171020
复制相似问题