Java: Import di un certificato SSL
Questo documento descrive i passi necessari per importare correttamente un certificato SSL per essere utilizzato nelle nostre applicazioni Java.
Un caso comune che richiede l'import di un certificato SSL è quando viene sollevata una exception quando tentiamo di invocare un sistema remoto richiede l'uso del protocollo SSL:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
Ottenere il certificato
Richiediamo al sistema esterno il certificato firmato ed opzionalmente il certificato dell'ente certificatore (chiamato solitamente Private Root CA).
In alternativa collegarsi con il proprio browser, all'url del sistema esterno e salvare il certificato cliccando sull'icona del lucchetto sulla barra degli indirizzi (o sulla barra di stato) ed esportare il certificato in formato X.509 (CER o PEM).
Importiamo il certificato
Per importare il certificato è necessario avere l'utente root, in quanto owner del keystore.
Possiamo dare al file del keystore i permessi 0777 in modo da poter effettuare questa operazione anche con un'utente non-root (in ambito aziendale chiedere al gestore della macchina se le policy permettono questa modifica):
# chmod 0777 $JAVA_HOME/jre/lib/security/cacerts
Per sicurezza facciamo il backup del file cacerts presente nella directory lib/security
del JRE di Java:
# cp $JAVA_HOME/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/cacerts.orig
Importiamo il certificato nel keystore con il seguente comando:
# $JAVA_HOME/jre/bin/keytool \ -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts \ -alias alias-cert -file /path/file.ce
- how-to/java-import-certificato-ssl.txt
- Last modified: 9 years ago
- by
Giuseppe Di Terlizzi