Professional Documents
Culture Documents
Apache-Tomcat 6.0 con autenticación mutua sobre SSL. Para llevar a cabo la autenticación mutua,
el servidor debe disponer de un certificado que lo acredite frente a los clientes que pretendan
establecer una conexión y además el propio servidor requiere un certificado válido al cliente, este
último certificado será el certificado de autenticación del DNIe. A continuación se detalla la
configuración que se ha de llevar a cabo.
Una vez obtenido el certificado de la CA del DNIe en formato PEM, se ha de obtener el almacén de
claves del mismo para que el servidor lo utilice en el proceso de autenticación de usuarios mediante
DNIe. Para ello se utiliza de la herramienta herramienta keytool:
#> keytool -import -keystore ca_dnie.truststore -file ac_raiz_dnie.crt
Una vez llevadas a cabo las acciones anteriores, se ha de reiniciar el servidor Apache Tomcat. Para
probar que la configuración sobre SSL es correcta se debe abrir el siguiente enlace en el explorador
web:
https://localhost:8443/
Fichero index.jsp
En el fichero index.jsp se lleva a cabo la carga de los certificados del cliente que se ha
conectado a la aplicación web. Siempre existirá algún certificado porque el servidor está
configurado para que la autenticación del cliente se lleve a cabo mediante certificado. Una vez
obtenido este certificado, se debe verificar su validez, en este caso se comprueba mediante el
servicio OCSP del DNIe.
##
OCSP ocsp = new OCSP();
X509Certificate[] certs = (X509Certificate[])
request.getAttribute("javax.servlet.request.X509Certificate");
if (certs != null)
out.println(ocsp.OCSP_validation(certs[0])); /*El primer certificado es el
de Autenticación en el caso del DNIe*/
!##
Clase OCSP
En la clase OCSP se define el método OCSP_validation()cuyo propósito es el de verificar la
validez de un certificado X.509 a través de un servicio remoto de validación de certificados del
DNIe. En concreto el servicio en el que se basa es http://ocsp.dnie.es . Para realizar este ejemplo,
se utilizan las librerías de código abierto Bouncy Castle . Estas librerías proporcionan una API
con todo tipo de funciones relacionadas con la seguridad computacional.