2014-12-10 17 views
7

Sto lavorando a un'applicazione che chiama un servizio web di terze parti su https. Quindi ho bisogno di aggiungere questo certificato al truststore della mia applicazione. Posso vedere 3 soluzioni per risolvere il mio problema:Procedura consigliata per gestire il certificato SSL di terze parti in Java

  • aggiungere questo certificato al $JAVA_HOME/jre/lib/security/cacerts
  • creare un truststore personalizzato e lanciare la mia JVM con -Djavax.net.ssl.trustStore= ...
  • programatically caricare questo truststore quando si inizia la mia domanda

Quale soluzione mi consigliate/scoraggiarmi?

risposta

3

Preferirei il secondo. Perché;

Per il primo; quando cambi la tua versione di java devi fare un lavoro extra (devi aggiungere nuovamente questi certificati SSL ai cacerts).

per il terzo; quando è necessario aggiungere un altro certificato SSL. devi cambiare il tuo codice.

Quindi, il secondo è la scelta migliore perché; non avrai bisogno di cambiare il tuo codice quando arriverà un nuovo ssl (lo aggiungerai semplicemente al trust esterno) e non farai nulla per questi certificati quando aggiorni la tua versione java.

+0

"quando è necessario aggiungere un altro certificato SSL, è necessario modificare il codice" questo non è corretto, è possibile impostare il keystore tramite il file delle proprietà o un altro meccanismo. "la seconda è la scelta migliore", né è corretta, dipende dalla complessità della tua app e dal tipo di applicazione, standalone, webapp ... ecc., forse hai bisogno di utilizzare più archivi di credenziali per mantenere un contesto SSL separato per interazione individuale del bersaglio che incapsula ciascun contesto in un nuovo oggetto SSLContext. – vzamanillo

Problemi correlati