Tworzę aplikację WCF, w której będę używać certyfikatów do szyfrowania komunikacji między klientem a serwerem. W moim środowisku programistycznym chcę użyć certyfikatu testowego/certyfikatu samopodpisanego, który stworzyłem przy pomocy makecert. (Tylko serwer będzie miał certyfikat, a klient nie).Dlaczego usługa WCF narzeka na niepowodzenie sprawdzania tożsamości?
Zainstalowałem certyfikat w magazynie certyfikatów i wszystko działa poprawnie. Na kliencie tryb certificateValidationMode jest obecnie ustawiony na "false", ponieważ pracuję z certyfikatem testu.
Mój problem:
W app.config na kliencie, muszę określić element neutralny jak to:
<endpoint ... >
<identity>
<dns value="<Name-Of-Server-Computer>"/>
</identity>
</endpoint>
Jeśli usunąć element neutralny, pojawia się następujący komunikat o błędzie w kliencie, gdy próbuję połączyć się z serwerem:
Kontrola tożsamości nie powiodła się w przypadku wiadomości wychodzących. Oczekiwana tożsamość DNS zdalnego punktu końcowego to "localhost", ale zdalny punkt końcowy pod warunkiem, że DNS żąda "Name-Of-Server-Computer". Jeśli jest to uzasadniony zdalny punkt końcowy, można rozwiązać ten problem, jawnie określając tożsamość DNS "Nazwa-serwer-komputer" jako właściwość Tożsamość EndpointAddress podczas tworzenia proxy kanału.
Więc oto moje pytania:
jest sprawdzenie tożsamości odbywa się tylko przy użyciu/certyfikat z podpisem własnym testu? Kiedy wdrażam aplikację przy użyciu prawdziwego, zaufanego certyfikatu zakupionego w urzędzie certyfikacji, czy nadal będzie sprawdzana tożsamość?
Czy istnieje sposób wyłączenia kontroli tożsamości? Wiem, że mogę utworzyć własny, niestandardowy walidator certyfikatów, ale wydaje się, że nie ma sposobu na zastąpienie sprawdzania tożsamości za pomocą tych.
> "To jest kontrola bezpieczeństwa, które nigdy nie wyłączyć!" Po to, aby upewnić się, że rozumiem. Czy to oznacza, że istnieje sposób, aby go wyłączyć? Rozumiem zalety czeku ... – Nitramk
Nigdy nawet nie myślałem o zrobieniu tego, więc nigdy nie poczułem chęci sprawdzenia, czy istnieje sposób, aby go wyłączyć. Nie wiem, przepraszam. –