Używanie certyfikatu Wcf SSl przez Tcp bez certyfikatu klienta (tylko po stronie serwera)
Czy istnieje sposób użycia protokołu WCF SSL z NetTcpBinding, który nie wymagałby zainstalowania certyfikatu klienta na komputerze klienta? (SSL V2, jeśli się nie mylę).
chcemy, aby certyfikat serwera znajdował się w zaufanym magazynie klienta w celu uwierzytelnienia, a szyfrowanie wiadomości za pomocą klucza publicznego serwera, co oznacza, że tylko serwer będzie posiadał certyfikat klucza prywatnego.
używamy NetTcpBinding, a nie CustomBinding po obu stronach. Jeśli można to zrobić, jaka jest prawidłowa konfiguracja? (w konfiguracjach klienta i serwera)
Z góry dziękuję.
oto moje wcf Configs.
KONFIG SERWERA:
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="TcpSecureBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceCredentialsBehavior">
<serviceDebug includeExceptionDetailInFaults="True" />
<serviceMetadata httpGetEnabled="true" />
<serviceAuthorization
principalPermissionMode="UseWindowsGroups">
</serviceAuthorization>
<serviceCredentials>
<windowsAuthentication includeWindowsGruops="true"
allowAnonymousLogons="false"/>
<clientCertificate>
<authentication certificateValidationMode="none"/>
</clientCertificate>
<serverCertificate
findValue="thumbprint"
storelocation="LocalMachine"
x509FindType="FindMyThumbprint"
storeName="My"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceCredentialsBehavior"
name="ServiceModel.Calculator">
<endpoint address="net.tcp://localhost:8040/Calculator"
binding="netTcpBinding"
bindingConfiguration="TcpSecureBinding"
contract="ServiceModel.ICalculator" >
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
KONFIGURACJA KLIENTA:
<configuration>
<system.serviceModel>
<client>
<endpoint address="net.tcp://localhost:8040/Calculator"
behaviorConfiguration="endpointCredentialBehavior"
binding="netTcpBinding"
bindingConfiguration="Binding1"
contract="ServiceModel.ICalculator">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="endpointCredentialBehavior">
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
Im dodanie mojego aktualnego konfiguracji serwera i klienta. inne pytania:
na poziomie uwierzytelniania chcemy, aby klient uwierzytelniał certyfikat serwera (wydaje mi się, że klucz publiczny serwera powinien znajdować się w sklepie zaufanego).
Czy polecasz nam korzystanie z zabezpieczeń transportu lub wiadomości?
jeśli chcemy uwierzytelnić klienta i serwer za pomocą NTLM (clientCredentialType = Windows), czy można to zrobić oprócz uwierzytelniania serwera lub zastosować tylko jedno z nich? do tej pory używaliśmy uwierzytelniania NTLM.
teraz otrzymuję wyjątek: „Żądana aktualizacja nie jest obsługiwana przez 'net.tcp: // nazwa_serwera: 8040 /**” Przyczyną może być niedopasowanie powiązań (na przykład zabezpieczenie włączone na kliencie, a nie na serwerze). „Rozumiem, że ten błąd wystąpił, ponieważ klient korzysta z zabezpieczeń systemu Windows i serwera w certyfikacie om, ale gdy zmieniają zabezpieczenia klienta na Certyfikat również , otrzymuję błąd: „Certyfikat klienta nie jest dostarczony”, ale nie chcę ustawiać certyfikatu klienta i jest to częścią mojego głównego problemu.
czytamy, że możemy użyć do uwierzytelniania na serwerze tych tagów:
<identity>
<certificate encodedValue="encoded certificate"/>
</identity>
ale myślę, że to uwierzytelnianie przez tożsamość odbywa się za pomocą zakodowanego certyfikatu, gdy preferujemy, aby identyfikacja certyfikatu była przeprowadzana przez przeszukiwanie klucza publicznego serwera w sklepie klienta (zaufani ludzie). czy ta informacja jest prawdziwa? że te tagi tożsamości są alternatywą dla wyszukiwania klucza publicznego w zaufanym sklepie klienta?
Mam nadzieję, że będziesz w stanie pomóc w tych manierach, dzięki jeszcze raz.