Básicamente, necesito asegurar mis solicitudes para este servicio.Invocar el servicio web Java desde el cliente C# utilizando certificados JKS y/o PFX
Me han proporcionado un cliente JAR
prueba y dos archivos, trust.jks
y Client.pfx
, pero no tengo ni idea de cómo usarlos: Entiendo clase X509Certificate2 está implicado de alguna manera.
La línea de comandos para ejecutar el cliente de prueba es el siguiente:
java -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=******** -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStore=Client.pfx -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=******** -jar TestClient.jar https://myServiceurl
Funciona, por lo tanto puedo ver el servicio, y el servicio en sí debe ser configurado correctamente.
Mi C# cliente (que está orientado .NET 2.0) utiliza una referencia Web normales para realizar solicitudes:
wsReferenceClient service = new wsReferenceClient();
//certificate code here ?
//maybe service.ClientCertificates.Add(<X509Certificate2 object built somehow>); ?
service.MyRequest(myParameters);
configuración del servidor debe ser configurado correctamente.
He tropezado con los métodos X509Certificate2
pero no puedo sacar algo que tenga sentido, por lo que la respuesta a "¿qué has intentado?" la pregunta en este momento es 'Realmente no sé qué probar en primer lugar'.
Cualquier ayuda sería muy apreciada.
AFAIK la tienda JKS es una solución propietaria de Java. Debe exportar las claves públicas (tal vez toda la cadena) usando keytool e importarlo a una tienda de formato abierto como PKCS. – home
Correcto, aunque preferiría tomar los certificados de confianza de él por separado y usarlos. El pfx ya debe contener la clave privada y la cadena de cert. –
Entonces, si entiendo correctamente, ¿tengo que hacer que el archivo JKS sea comestible para mi cliente de alguna manera? Creo que voy a googlear un poco más ... – Alex