4

我正在为用户设置使用客户端证书登录的支持。不幸的是,IIS 拒绝承认任何未链接到已安装 CA 的证书(请参阅本文)。

由于该功能仅为用户的方便而实施,因此允许任何客户端证书会很棒。有没有办法做到这一点?

我的服务器正在运行 Windows Server 2003 和 IIS 6,但在本地运行的 IIS 7 上的行为没有什么不同。如果可以自定义 IIS 7 以支持任何客户端证书,我将能够进行更改(鉴于没有可用的 IIS 6 解决方案)。

4

4 回答 4

2

我认为正常的方法是让您向他们颁发证书,然后让您设置 IIS 以接受您的证书作为根。

于 2008-10-04T21:35:35.733 回答
1

实现这个类:

    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-29T19:57:22.637 回答
0

我认为您可以通过命令添加新的CA 证书certmgr

certmgr --add -c -m Trust <CA_cert_DER_fmt>

注意:与 UNIX 不同,Windows同时管理所有应用程序的证书,这可能会产生安全隐患,因此请注意

于 2008-10-04T21:43:43.437 回答
0

WCF 允许您编写自定义 X.509 证书处理程序。在代码中,您可以进行一些检查,例如将指纹与数据库中的已知值进行比较。

于 2008-10-04T21:50:07.480 回答