¿Hay alguna forma de usar WCF SSL con NetTcpBinding que no requiera la instalación de un certificado de cliente en la máquina cliente? (SSL V2 si no me equivoco).Uso del certificado Wcf SSl sobre Tcp sin certificado de cliente (solo del lado del servidor)
queremos que el certificado del servidor esté en la tienda de confianza del cliente para la autenticación y encriptar su mensaje mediante la clave pública del servidor, lo que significa que solo la máquina servidor tendrá un certificado de clave privada.
estamos usando un NetTcpBinding y no un CustomBinding en ambos lados. Si se puede hacer, ¿cuál es la configuración correcta para ello? (en las configuraciones del servidor del cliente &)
Gracias de antemano.
aquí están mis wcf Configs.
CONFIG SERVER:
<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>
configuración del cliente:
<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 añadiendo mis actuales configuraciones de servidor & cliente. otras preguntas:
en el nivel de autenticación queremos que el cliente se autentifique certificado de servidor Ther (creo que la clave pública del servidor debe estar en el almacén trustedPeople), es esto posible?
¿nos recomiendan usar Transport Security or Message?
si queremos autenticar cliente servidor & mediante NTLM (clientCredentialType = Windows) es que puede hacerse además de la autenticación de certificados del servidor o sólo uno de ellos se puede aplicar? hasta ahora, hemos utilizado la autenticación NTLM.
ahora Im consiguiendo excepción: "La actualización solicitada no está soportada por 'net.tcp: // servidor: 8040/**'. Esto podría ser debido a consolidaciones no coincidentes (por ejemplo, la seguridad habilitada en el cliente y no en el servidor) ". entiendo que este error se produjo porque el cliente está usando Windows Security y el servidor en om Certificate, pero cuando también estoy cambiando la seguridad del cliente a Certificate, obtengo un error: "No se proporciona el certificado del cliente". pero no quiero establecer el certificado del cliente y eso es parte de mi problema principal.
leemos que podemos utilizar para la autenticación de certificados del servidor de esta tags:
<identity> <certificate encodedValue="encoded certificate"/> </identity>
Pero, creo que esta autenticación de la identidad se realiza mediante un certificado codificado cuando preffer que la identificación del CERT se realizará buscando en la clave pública del servidor en la tienda del cliente (trustedPeople). ¿esta información es realmente cierta? que éste Etiquetas de identidad son alternativo de buscar la clave pública en el cliente "s tienda de confianza?
esperanza de que será capaz de ayudar en esta modales, gracias de nuevo.
Es posible. ¿Qué has intentado hasta ahora? – Bernard
No debe necesitar un certificado de cliente a menos que lo solicite específicamente; ¿Cómo se ve tu configuración de enlace? –
¿Alguien puede ayudarme con nuestro problema, por favor? – AmirT