WCF-Zertifikat der Kette, überprüfen Sie programmgesteuert

Ich versuche, die Zertifikate verwenden, programmgesteuert statt mithilfe des store. Ich Schaffe X509Certificate2's mit mit dem Namen und Passwort.

Dies funktioniert gut wenn ich manuell Hinzugefügt werden, dem root-Zertifikat dem Zertifikatspeicher Vertrauenswürdige Personen. Allerdings würde ich das eher nicht zu tun haben, dass auf jedem deployment - ich würde lieber mit ihm umgehen, programmgesteuert zu.

Wenn ich entfernen Sie das root-Zertifikat aus dem Zertifikatspeicher ich eine Ausnahme.

Alles, was ich gelesen habe scheint zu sagen, dass ich auf manuell Hinzugefügt werden, dem root-Zertifikat der Zertifikat-Speicher, oder der Trust Chain nicht funktionieren.

Frage: gibt es eine programmatische Möglichkeit zum einrichten der Trust-Kette, so dass ich nicht haben, um es manuell tun?

Der code sieht wie folgt aus:

        var serverCert = new X509Certificate2("FullPathToMyCertificate.cer", "Password");
        Client.ClientCredentials.ServiceCertificate.DefaultCertificate = serverCert;

Ausnahme, die tritt auf wenn ich versuche den Client verwenden, ist:

System.IdentityModel.Tokens.SecurityTokenValidationException 

The X.509 certificate CN=notrealcertname, OU=TPA, OU=BMP, OU=Projects, O=Somebody, C=US is not in the trusted people store. 
The X.509 certificate CN=notrealcertname, OU=TPA, OU=BMP, OU=Projects, O=Somebody, C=US chain building failed. 
The certificate that was used has a trust chain that cannot be verified. 
Replace the certificate or change the certificateValidationMode. 
A certificate chain could not be built to a trusted root authority.
InformationsquelleAutor Steve | 2011-08-25
Schreibe einen Kommentar