wcf wcf-security wcf-routing

Enrutamiento WCF con seguridad de mensajes



wcf-security wcf-routing (4)

No se proporciona el certificado de cliente. Especifique un certificado de cliente en ClientCredentials.

He visto este error cuando el certificado de servicio no coincide con el nombre de dominio del host.

Si aún está viendo este problema, ¿puede publicar algunas de sus entradas de configuración?

Tengo un servicio WCF con autenticación de seguridad de mensajes.

Quiero configurar un servicio de enrutamiento para el equilibrio de carga.

Por alguna razón no funciona, he habilitado includeExceptionDetailInFaults para ver las excepciones, por lo que en el cliente veo:

No se proporciona el certificado de cliente. Especifique un certificado de cliente en ClientCredentials.

Parece que el certificado no se reenvía desde enrutador-> servicio.

Actualmente, el cliente / enrutador / servicio está en la misma máquina, así que tengo todos los certificados, pero si los implemento en una máquina diferente, ¿el enrutador tendrá que tener las claves privadas?

Además, si quiero establecer una conexión no segura entre el enrutador y el servicio (descargar la seguridad), ¿cómo puedo proporcionar la identidad del llamante?

EDITAR: Para todos los clientes / enrutadores (servidor y cliente) / servidor, la seguridad configurada de la misma manera:

<security mode="Message"> <message clientCredentialType="Certificate" negotiateServiceCredential="false" algorithmSuite="Default" establishSecurityContext="false" /> </security>


1) Como primer intento, establecer el certificado en el lado del cliente por código.

ChannelFactory<IService1> factory = new ChannelFactory<IService1>("Service1_Endpoint"); factory.Credentials.ServiceCertificate.SetDefaultCertificate( System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser, System.Security.Cryptography.X509Certificates.StoreName.My, System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName, "<SeriveCerificateName>");

Si realmente tiene un problema con el certificado, obtendrá rápidamente una excepción en el inicio de la aplicación.

2) Si no hay una excepción, verifique las huellas digitales del certificado de servicio en ambos lados.