Durante lo sviluppo di un client webservice Java ho riscontrato un problema. L'autenticazione per il servizio web utilizza un certificato client, un nome utente e una password. Il certificato client che ho ricevuto dall'azienda dietro il servizio web è in .cer
formato. Quando controllo il file utilizzando un editor di testo, ha i seguenti contenuti:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Posso importare questo file come certificato in Internet Explorer (senza dover inserire una password!) E usarlo per autenticarmi con il servizio web.
Sono stato in grado di importare questo certificato in un keystore eliminando prima la prima e l'ultima riga, convertendomi in unix newline ed eseguendo una decodifica base64. Il file risultante può essere importato in un keystore (usando il keytool
comando). Quando elenco le voci nel keystore, questa voce è del tipo trustedCertEntry
. A causa di questo tipo di voce (?) Non posso usare questo certificato per autenticarmi con il servizio web. Sto iniziando a pensare che il certificato fornito sia un certificato pubblico utilizzato per l'autenticazione ...
Una soluzione alternativa che ho trovato è importare il certificato in IE ed esportarlo come .pfx
file. Questo file può essere caricato come keystore e può essere utilizzato per l'autenticazione con il webservice. Tuttavia, non posso aspettarmi che i miei clienti eseguano questi passaggi ogni volta che ricevono un nuovo certificato. Quindi vorrei caricare il .cer
file direttamente in Java. qualche idea?
Informazioni aggiuntive: la società dietro il servizio web mi ha detto che il certificato dovrebbe essere richiesto (utilizzando IE e il sito Web) dal PC e dall'utente che avrebbe importato il certificato in un secondo momento.