it-swarm.com.de

X.509-Zertifikat kann mit "FindBySubjectName" nicht finden

Nach einem brutalen Kampf mit WCF Security glaube ich, dass ich jetzt in der Endphase bin und das Licht sehen kann.

Ich habe ein Client-Zertifikat auf meinem Server installiert und befindet sich nun, wie empfohlen, im Ordner Vertrauenswürdige Personen des Zertifikatspeichers.

Wenn ich jedoch den Zertifikatsantrag -> Dienst versuche und lese, erhalte ich folgende Fehlermeldung:

Das X.509-Zertifikat kann mit den folgenden Suchkriterien nicht gefunden werden: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'Vorname Nachname'.

Der "Vorname" ist der "Ausgegeben für" Teil meines Zertifikats. In allen Tutorials, die ich gesehen habe, ist dies nur ein Wort. Ist das das Problem? Ich habe mein Zertifikat mit zwei Wörtern und einem Leerzeichen von meiner Zertifizierungsstelle erhalten.

Hat jemand jemals etwas davon gehört, gibt es etwas, was ich offensichtlich falsch mache?

Update, cert ist hier zu sehen:

enter image description here

Aktualisieren: 

Es wird noch merkwürdiger:

Ich habe Visual Studio auf meinem Webserver installiert und den folgenden Code verwendet, um das Zertifikat von Thumbprint abzurufen: 

var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "71995159BFF803D25BFB691DEF7AF625D4EE6DFB", false);

Dies RETURNS tatsächlich ein gültiges Ergebnis. Wenn ich diese Informationen jedoch in die web.config meines Service/Clients eingebe, erhalte ich immer noch den Fehler.

13
Chris Dixon

Ich denke ... Sie haben ein Zertifikat an Standort Vertrauenswürdige Personen installiert und im Shopnamen my gesucht.

var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, certificateSubject, false);

Es gibt auch zwei Suchbegriffe FindBySubjectName oder FindBySubjectDistinguishedName, der spätere ist relevanter für Schlüsselwörter und der erste findet irgendetwas mit Suchbegriffen.

Im Grunde müssen Sie nach Betreff suchen, und wenn Sie den obigen Code verwenden, lautet Ihre Suchzeichenfolge .. "CN = urs.Microsoft.com, O = DO_NOT_TRUST, OU = Erstellt von http://fiddler2.com "

Certificate properties

13
paragy

https://i.stack.imgur.com/QtYvV.png

private X509Certificate2 GetCertificateFromStore()
        {
            var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
            store.Open(OpenFlags.ReadOnly);
            var certCollection = store.Certificates;
            var currentCerts = certCollection.Find(X509FindType.FindBySubjectDistinguishedName, "CN=sf.sandbox.mapshc.com", false);
                return currentCerts.Count == 0 ? null : currentCerts[0];
        }
1
Sagaya Amalraj