Fondamentalmente ho bisogno di proteggere le mie richieste verso questo servizio.Invocazione del servizio Web Java dal client C# utilizzando i certificati JKS e/o PFX
Ho fornito un cliente JAR
di prova e due file, trust.jks
e Client.pfx
, ma non ho idea di come usarli: Capisco classe X509Certificate2 è coinvolto in qualche modo.
La riga di comando per eseguire il client di prova è la seguente:
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
Funziona, così posso vedere sia il servizio, e il servizio stesso deve essere configurato correttamente.
mio client C# (si mira NET 2.0) utilizza un normale riferimento Web per effettuare le richieste:
wsReferenceClient service = new wsReferenceClient();
//certificate code here ?
//maybe service.ClientCertificates.Add(<X509Certificate2 object built somehow>); ?
service.MyRequest(myParameters);
impostazioni server deve essere configurato correttamente.
Ho frugato in giro con i metodi X509Certificate2
ma non riesco a uscire con qualcosa che abbia senso, quindi la risposta al 'cosa hai provato?' la domanda al momento è "Non so davvero cosa provare in primo luogo".
Qualsiasi aiuto sarebbe molto apprezzato.
AFAIK lo store JKS è una soluzione Java proprietaria. È necessario esportare le chiavi pubbliche (forse l'intera catena) utilizzando keytool e importarlo in un negozio di formato aperto come PKCS. – home
Corretto, anche se preferisco prendere i certificati attendibili da esso separatamente e usarli. Il pfx dovrebbe già contenere la chiave privata e la catena di certificati. –
Quindi, se ho capito bene, ho bisogno di rendere il file JKS commestibile per il mio client in qualche modo? Penso che tornerò su Google un po 'di più ... – Alex