Pasos :
1- Desde el shell ( cmd ) ejecutamos por ejemplo :
keytool -genkey -keyalg RSA -keysize 2048 -alias ??? -keystore ??? -validity 365 -keypass ??? -storepass ???
A continuación respondemos a las preguntas.
Nota: No todos los parámetros son obligatorios, por ejemplo, si queremos que no caduque, no usamos el parámetro validity.
Parámetros :
-> keyalg : Algoritmo criptográfico. Además de RSA, también valen: DSA,...
-> keysize : Longitud de la contraseña (en bits).
-> alias : Identificador de nuestro certificado.
-> keystore : Ruta del almacén del certificado. Si no se indica este párametro, el almacén guardado por defecto es .keystore ubicado en directorio (home) del usuario. Extensiones tipicas: .ssl, .keystore, .jks, .csr, ...
-> validity : Días de validez.
-> keypass : Clave con la que podremos acceder a la clave privada del par de claves creado.
-> storepass: Clave para acceder a nuestro keystore (fichero creado).
2- Para confirmar que todo ha ido correcto, podemos comprobarlo ejecutando (válido cuando no se indica el keystore):
keytool -list -storepass ???
Para verlo más detallado aplicamos:
keytool -list -v alias ??? -storepass ???
donde ??? ha de coincidir con el alias y la contraseña arriba indicada.
3- El fichero generado lo ubicamos en el directorio /conf del servidor Tomcat.
4- Modificamos el fichero server.xml como se muestra a continuación
<!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation -->
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="conf/[nombre_fichero]"
keystorePass="???"/>
Con clientAuth como false no se solicita certificado al cliente durante el establecimiento de la conexión SSL.
Nota: Una herraminta de gran utilidad es Keytool IUI, la cual facilita todo el desarrollo de creación de certificados evitando así la consola.
Cuidado: Si estamos ejecutando la aplicación en un IDE, por ejemplo Eclipse, hemos de aplicar los pasos 3 y 4 en el directorio "server" del workspace del IDE.
Información sacada de:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=SSLenTomcat
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=securitySSLKeytool