2012-11-06 28 views
12

Po brutalnej walce z WCF Security, myślę, że jestem teraz na ostatnim etapie i mogę zobaczyć światło.Certyfikat X.509 nie może znaleźć przy "FindBySubjectName"

Mam zainstalowany certyfikat klienta na moim serwerze i jest on teraz, zgodnie z zaleceniami, w folderze Zaufane osoby w magazynie certyfikatów.

Jednak gdy próbuję czytać i stosowania certyfikatów -> serwis, otrzymuję ten błąd:

Cannot find the X.509 certificate using the following search criteria: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'Forename Surname'.

Z „Imię Nazwisko” bycia „wydawane” część mojego świadectwa. We wszystkich tutorialach, które widziałem, jest to tylko jedno słowo; Czy to jest problem? Otrzymałem certyfikat od mojego CA z tymi dwoma słowami, z spacją.

Ktoś kiedykolwiek natknął się na to, czy jest coś, co rażąco robię źle?

Update, może cert zobaczyć tutaj:

enter image description here

Aktualizacja:

To staje się jeszcze bardziej dziwne:

zainstalowaniu Visual Studio na mój serwer WWW, a stosuje się następującą kod do pobrania certyfikatu przez odcisk kciuka:

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

To faktycznie ZWRACA prawidłowy wynik. Kiedy jednak umieszczam tę informację w web.config mojej usługi/klienta, nadal otrzymuję błąd.

+1

Zarządzasz certyfikatami dla bieżącego użytkownika. Przypuszczalnie 'somedomain \ cdixon'. Czy usługa sieciowa działa jako 'somedomain \ cdixon' lub coś innego, np." SERWIS NETWORK "? –

Odpowiedz

11

I think..You zainstalowany certyfikat na położenie zaufanych ludzi i poszukiwania w nazwie sklepu mój

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

Ponadto istnieją dwa terminy wyszukiwania FindBySubjectName lub FindBySubjectDistinguishedName, później jest bardziej istotne ze słowami kluczowymi i pierwszy znajdzie coś ze słowami kluczowymi wyszukiwania.

Więc w zasadzie trzeba spojrzeć na przedmiot i jeśli używasz Powyższy kod to wyszukiwanie ciąg będzie .. "CN = urs.microsoft.com, O = DO_NOT_TRUST, OU = Utworzony przez http://fiddler2.com"

Certificate properties

+0

Próbowałem oba te - storeName "TrustedPeople" i "FindBySubjectDistinguishedName" nadal nie zwracają żadnych wyników, jak frustrujące! Zaktualizowałem swój post obrazkiem mojego certyfikatu, czy z pewnością powinienem używać "CurrentUser", a nie "LocalMachine"? Usługa i klient znajdują się w tej samej skrzynce internetowej. –

+0

jeśli edycja nie działa, możesz opublikować zrzut ekranu obiektu tak jak ja, a także napisać kod. – paragy

+0

Mam mój temat, ale jest znacznie bardziej szczegółowy niż powyższy sceenshot, ma adres, kod pocztowy, e-mail itp., Bardzo długi ciąg, gdy wszystko razem. Czy potrzebuję tego wszystkiego? –