Vamos a configurar Tomcat para poder acceder a nuestras aplicaciones a través https.
Necesitaremos un certificado que vamos a crear usando la herramienta keytool. Una vez lo hayamos creado, configuraremos Tomcat para que lo tenga en cuenta.
Posteriormente vamos a configurar el Tomcat para que confíe en otros certificados; en este caso para que confíe en ese mismo certificado
1. - Creamos un certificado propio y configuramos Tomcat para que use el certificado
Usando la herramienta keytool generamos una clave RSA que llamaremos tomcat y la almacenamos en el fichero /certificados/tomcat.keystore. El password para el almacén de claves será "miPassword"
$ keytool -genkey -alias tomcat -keypass miPassword -keyalg RSA -keystore /certificados/tomcat.keystore
Escriba la contraseña del almacén de claves: // miPassword
Volver a escribir la contraseña nueva: // miPassword
¿Cuáles son su nombre y su apellido?
[Unknown]:
¿Cuál es el nombre de su unidad de organización?
[Unknown]:
¿Cuál es el nombre de su organización?
[Unknown]:
¿Cuál es el nombre de su ciudad o localidad?
[Unknown]:
¿Cuál es el nombre de su estado o provincia?
[Unknown]:
¿Cuál es el código de país de dos letras de la unidad?
[Unknown]:
¿Es correcto CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown?
[no]: si
2. - Configuramos Tomcat para que use el certificado
Modificamos el fichero server.xml que está en $CATALINA_HOME/conf
< Connector
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
clientAuth="false"
keystoreFile="/certificados/tomcat.keystore"
keystorePass="miPassword"
maxThreads="150"
port="8443"
scheme="https"
secure="true"
sslProtocol="TLS"
URIEncoding="UTF-8"
/>
3. - Generamos el fichero que almacenará los certificados en los que Tomcat debe confiar
Ahora vamos a especificar a Tomcat que confíe en ese mismo certificado. Para ello, primero necesitamos exportar el certificado tomcat almacenado en /certificados/tomcat.keystore al fichero /certificados/server.crt
$ keytool -export -alias tomcat -keypass password -file /certificados/server.crt -keystore /certificados/tomcat.keystore
Escriba la contraseña del almacén de claves: // miPassword
Certificado almacenado en el archivo </certificados/server.crt>
Los certificados en los que confiará Tomcat se almacenarán en el fichero /certificados/cacerts. Por tanto iremos importando en este fichero los diferentes certificados en los que queremos confiar.
$ keytool -import -file /certificados/server.crt -keypass password -keystore /certificados/cacerts
Escriba la contraseña del almacén de claves: // miPassword
Volver a escribir la contraseña nueva: //miPassword
Propietario: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Emisor: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Número de serie: 4c7a36e0
Válido desde: Sun Aug 29 11:30:56 WEST 2010 hasta: Sat Nov 27 10:30:56 WET 2010
Huellas digitales del certificado:
MD5: DB:E7:4F:42:89:39:58:31:F7:25:20:67:F8:60:54:D6
SHA1: 85:83:94:D1:42:D6:4D:D9:FA:9A:D5:35:28:C5:A4:23:45:CE:CB:AC
Nombre del algoritmo de firma: SHA1withRSA
Versión: 3
¿Confiar en este certificado? [no]: si
Se ha añadido el certificado al almacén de claves
4. - Configuramos Tomcat para que confíe en otros certificados
Modificamos el fichero server.xml para especificarle el fichero de certificados en los que queremos confiar:
< Connector
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
clientAuth="false"
keystoreFile="/certificados/tomcat.keystore"
keystorePass="miPassword"
truststoreFile="/certificados/cacerts"
maxThreads="150"
port="8443"
scheme="https"
secure="true"
sslProtocol="TLS"
URIEncoding="UTF-8"
/>
Esto me vino al pelo . Muchas gracias por la data
ResponderEliminaresto me sirve para comunicar 2 app en 2 tomcat diferentes a traves de ssl?
ResponderEliminar