En una ocasión, un cliente nos solicitó que activásemos una validación de usuarios mediante certificados para una parte de un sitio web del cliente. Concretamente, el cliente deseaba utilizar los certificados de la Fabrica Nacional de Moneda y Timbre (FNMT).

Pues bien, la configuración es relativamente sencilla. Primero de todo, debemos obtener los certificados de la FNMT (o la CA en cuestión), ya sea un único .crt o un .pem

Seguidamente, en la configuración de nuestro VirtualHost para HTTPS, añadiremos una configuración similar a esta:

 

Procedo a explicar. Primeramente, añadimos la CA a nuestro virtualhost, para que Apache pueda contrastar la validez de los certificados con ella. Seguidamente, con SSLVerifyClient none, indicamos a Apache que establezca la validación en None para evitar que se valide todo el sitio web.  Después, hemos activado la validación SSL por cliente en tres ubicaciones diferentes (con Location) a través de la directiva SSLVerifyClient require, por lo que el resto de la web será libre para todo el mundo, pero cuando algún usuario intente acceder a alguna de dichas ubicaciones, se solicitará el certificado.

Como añadido, en caso de que delante de Apache tengamos un Proxy reverso como Nginx, será necesario que Nginx sepa que debe pasar en las cabeceras el certificado a Apache, de lo contrario no funcionará.

Para ello, con añadir la siguiente directiva en la configuración de Nginx, no debería haber problema.

 


2 comentarios

Jorge · 03/09/2020 a las 10:56 am

Hola, estoy intentando hacer exactamenter lo que se dice en este post. Una aplicación que sea posible loguearse con dertificado del DNIe. En apache2 configuro los parámetros que aparecen pero si pongo el parámetro SSLCACertificateFile, no me pide seleccionar certificado del lector y directamente aparece el mensaje de certificado NO válido.
Si quito ese parámetro, SI me aparece la ventana para seleccionar el certificado; pero tampoco lo acepta.

El .pem o .crt de la FNMT no se de donde descargarlo. Me he descargado de la web oficial de la FNMT el .cer pero no consigo validar el certificado.

Gracias

    Daniel · 03/09/2020 a las 12:00 pm

    Buenas Jorge,

    Los Certificados de la FNMT los puedes descargar en https://www.sede.fnmt.gob.es/descargas/certificados-raiz-de-la-fnmt

    En mi caso yo descargué todos los que necesitaba y los uní en un PEM.

    Así mismo, recuerda configurar un con las partes de tu web donde debe realizarse validación, en caso de que no toda ella requiera validarse.

    Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *