4 Stimmen

Akzeptieren von Client-Zertifikaten von jeder CA

Ich bin dabei, die Unterstützung für Benutzer einzurichten, die sich mit Client-Zertifikaten anmelden. Leider weigert sich IIS, Zertifikate anzuerkennen, die nicht mit einer installierten Zertifizierungsstelle verknüpft sind ( siehe diesen Artikel ).

Da die Funktion nur aus Gründen der Benutzerfreundlichkeit implementiert ist, wäre es gut, jedes Client-Zertifikat zuzulassen. Gibt es eine Möglichkeit, dies zu erreichen?

Auf meinem Server läuft Windows Server 2003 und IIS 6, aber das Verhalten unterscheidet sich nicht von meinem IIS 7, der lokal läuft. Wenn IIS 7 so angepasst werden könnte, dass es jedes Client-Zertifikat unterstützt, könnte ich das ändern (da keine Lösung für IIS 6 verfügbar ist).

2voto

Lou Franco Punkte 85315

Ich denke, der normale Weg ist, dass Sie die Zertifikate für sie ausstellen und dann IIS so einrichten, dass Ihr Zertifikat als Root akzeptiert wird.

1voto

Chris Ballance Punkte 32892

Implementieren Sie diese Klasse:

    public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
    {
        public TrustAllCertificatePolicy() {}

        public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,WebRequest req, int problem)
        {
            return true;
        }
    }

Stellen Sie ihn mit der folgenden Codezeile ein. Danach werden alle Zertifikate akzeptiert, unabhängig davon, ob sie abgelaufen sind, der Name nicht übereinstimmt usw.

 System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

0voto

Purfideas Punkte 3230

Ich denke, Sie können eine neue Wurzel CA-Zertifikat über die certmgr Befehl

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

Hinweis: Im Gegensatz zu UNIX verwaltet Windows Zertifizierungen für alle Anwendungen gleichzeitig was Auswirkungen auf die Sicherheit haben kann, daher sollten Sie sich davor hüten.

0voto

Eugene Yokota Punkte 92703

WCF ermöglicht es Ihnen, eine benutzerdefinierter X.509-Zertifikat-Handler . Im Code können Sie einige Prüfungen durchführen, z. B. den Vergleich des Fingerabdrucks mit dem bekannten Wert in der Datenbank.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X