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 に答える