Sei sulla pagina 1di 4

Administracin de Tecnologas web

Yercko Luis Montero Cortez


Universidad Miguel Hernndez

Resumen
En trminos generales el objetivo principal es familiarizarse con
la metodologa de creacin y gestin de certificados SSL en un
servidor, Tomcat en este caso.

Categoras y descriptores de apartados


D.1.1 [Herramientas de java]: son binarios en cdigo nativo que
dependen de ejecutar bytecode de mtodos de las clases Java
definidas en sus bibliotecas criptogrficas, mediante JNI.

Trminos generales
Seguridad, Autenticacin.

Keywords
SSL,certificado digital, java

1. Introduccion
En esta memoria se resolvern las cuestiones acerca de cmo
configurar Tomcat como servidor seguro, empleando SSL sobre
HTTP. Existen varias formas de hacerlo, en este caso nos vamos a
apoyar en el uso de la herramienta Keytool (D.1.1), distribuida
con el kit de desarrollo de Java. La prctica consta de dos partes:
en la primera generaremos un certificado digital auto firmado
por el servidor y configuraremos el servidor para permitir
conexiones SSL.
En la segunda, crearemos una solicitud de certificado electrnico,
que habr que enviar a una autoridad certificadora (Verisign,
Thawte, HispaSSL,) para conseguir el correspondiente
certificado electrnico para el servidor.
Teniendo claro el objetivo y el contexto en el que nos
encontramos, solo nos queda mostrar los pasos necesarios a travs
de captura de pantallas y la explicacin de cada uno.

2. Generacin de un certificado auto

Java dispone de una herramienta en lnea de comandos, keytool,


con la que se puede crear un certificado auto firmado generado
por nosotros mismos como administradores del servidor, y que no
ha sido oficialmente registrado en el registro de certificados, por
ninguna autoridad.
Mediante el comando keytool de Java generamos el fichero auto
firmado con los siguientes parmetros:
keytool -genkey -alias tomcat -keyalg RSA -keysize 2048
keystore C:\atw\yerckomontero.
Con el parmetro genkey, indicamos que queremos generar un
nuevo fichero de claves. El parmetro alias especifica el alias
o nombre asignado a esa clave, en este caso tomcat que es el
alias que emplea el servidor Tomcat. Con el parmetro keyalg
especificamos el algoritmo de cifrado para las claves, en este caso
RSA.
Los datos introducidos para el certificado son los siguientes:

Este comando generar el fichero YerckoMontero en el home


directory del usuario, que ser el fichero de claves que usaremos
posteriormente.

Edicin del fichero de configuracin


del servidor

En el caso de mi versin de servidor Tomcat, el fichero server.xml


es el siguiente:

firmado
SSL es una tecnologa que permite a los servidores Web y a los
navegadores comunicarse sobre una conexin segura. Esto quiere
decir, que la informacin es encriptada antes del envo y
desencriptada en la recepcin.
Otra caracterstica importante del protocolo es la autenticacin:
cuando el cliente intenta la comunicacin con el servidor, ste
debe presentar al navegador sus credenciales en forma de
certificado firmado por una de las autoridades certificadoras,
para demostrar que el servidor es realmente quien dice ser. De
modo opcional, es posible forzar al cliente a que presente sus
credenciales al servidor, aunque esto no es muy habitual, pues
requiere la distribucin de certificados de cliente.

Por defecto, sala comentado este fragmento de cdigo, por


lo que ser necesario eliminar las etiquetas de comentario.
El puerto por defecto es el 8443, que si se desea, podra
cambiarse por el estndar en SSL: 443. El atributo
clientAuth es false, por lo que el servidor no
requerir el certificado al cliente.
Una vez hemos conseguido efectuar todos los cambios, al acceder
al navegador nos advierte la pgina no puede ser segura, ya que al
haber generado nosotros mismos el certificado no es reconocido
como fiable en el navegador.

Siguiendo todos los pasos, descargo el fichero, lo importo en


Tomcat correctamente, y ya tengo mi certificado de prueba. El
proceso a sido relativamente sencillo, a pesar de algunos
problemas.

4. Generacin de certificados con


OpenSSL
3. Solicitud de certificado a una
autoridad certificadora
2

Generacin del requerimiento de


certificado

Para generar el fichero CSR que contiene toda la informacin de


la peticin de la peticin del certificado y que incluye la clave
pblica.
keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr
-keystore
Con el parmetro certreq especificamos que queremos
generar una solicitud de certificado. A continuacin con el
parmetro keyalg especificamos el algoritmo que se
utiliz para la generacin de las claves, en este caso RSA,
y con alias el alias del certificado en nuestro almacn
de claves, en este caso tomcat. El parmetro file
indica el nombre que daremos al fichero de solicitud, en
este caso certreq.csr. De nuevo, cuidado con las rutas y
los permisos de acceso. El fichero as generado, contendr
nuestros datos identificativos y nuestras claves, y ser
enviado a la autoridad certificadora, quien dar constancia
de que la clave pblica nos corresponde y que somos quien
decimos.
El contenido del fichero es el siguiente:

Envo de la solicitud a la autoridad


certificadora.

Para ilustrar el procedimiento vamos a generar un certificado de


los denominados Trial, que de forma gratuita y durante un
periodo de tiempo de entre 14 y 30 das, nos permitir utilizar el
certificado, para, posteriormente, comprarlo abonando la cantidad
correspondiente. A continuacin se muestra el enlace en la pgina
de Verisign, aunque podis seleccionar cualquier otro.
https://www.symantec.com/es/es/verisign/ssl-certificates

En esta ltima parte de la prctica vamos a generar los


certificados nosotros mismos, en lugar de una entidad
certificadora, tenemos que seguir los siguientes pasos:
En primer lugar, hemos de exportar clave privada de Tomcat, para
eso utilizamos el siguiente programa ExportPrivateKey (que
debemos de copiar al directorio donde vayamos a exporta la clave
privada, normalmente el bin de java). Una vez copiado abrimos
una consola de comandos y tecleamos lo siguiente:

java -jar ExportPrivateKey.zip archivo_keystore JKS


clavetomcat tomcat ca.key
La primera vez que lo ejecute, devolvi el siguiente error:
Despus de investigar, encontr donde estaba el problema y es que
haba modificado el fichero de claves sin darme cuenta. Para
solventar esto, volv a generar el fichero del almacn de claves. Y
en este caso ya consegu tener la clave privada de Tomcat en el
archive ca.key.
En segudo lugar, generamos un certificado con el archivo .csr,
que hemos exportado en los puntos anteriores de la prctica, y la
clave privada (ca.key), para ello debemos instalar OpenSSL,
incluido en los ficheros de esta prctica, y teclear la siguiente
orden:
openssl x509 -req -days 365 -in cert.csr -signkey ca.key -out
certificadotomcat.crt
Los parmetros de entrada son la peticin .csr y la clave privada,
como resultado obtenemos el certificado completo.

A continuacin, hacemos doble clic sobre el certificado,


observamos los detalles del certificado:

Al solicitar el certificado, he recibido un mensaje en donde me


informan que me han denegado el certificado.
Posteriormente me puse en contacto con la entidad,
exponiendo el problema y pidiendo que me admitieran el
certificado, ya que es solo para una prctica de la
universidad.
A los pocos minutos me respondi amablemente un responsable
de dar permisos, hablamos sobre el problema y lo solucion en un
instante. Llegndome despus por correo los pasos para descargar
el fichero del certificado.

Se puede apreciar el nombre del emisor, el algoritmo de cifrado, y


el rango de fechas en el que ser vlido. Lo instalamos el
certificado, elegimos que Windows seleccione automticamente el
almacn de certificados, y ya tenemos completo el certificado.

Exportamos el fichero como publica.cer.


Por ltimo realizamos la importacin del certificado, copiamos la
clave publica.cer a la ruta donde est keytool y ejecutamos lo
siguente:
Keytool
-import
-trustcacerts
-alias
miclavepublica.cer -keystore archive_keystore

El siguiente paso es exportar el certificado desde Internet


Explorer:

tomcat

file

Y con el certificado instalado correctamente concluye esta


prctica.

5. Conclusin
A pesar de las dificultades, he podido comprobar de primera mano
la metodologa de creacin de un certificado. Y las como
instalarlo en un servidor.