Apache validar por certificado

Introducción

Hace pocos días hubo un cliente que nos ha solicitado que parte de su web se pudiera acceder solicitando un certificado válido.

Para ello tenemos que configurar nuestro virtualhost para que pueda solicitar el certificado y si está permitido en el intermedio entonces le dejará pasar a la nueva sección.

Teniendo estas premisas vamos a trabajar en la configuración.

Apache validar por certificado

Antes de empezar a hablar podemos obtener la configuración a través de la documentación que nos ofrece Apache:

http://httpd.apache.org/docs/current/ssl/ssl_howto.html

Esta es la configuración que debemos realizar sobre nuestro virtualhost:

SSLVerifyClient none
SSLCACertificateFile /ruta-certificados-intermedios/certificados_buenos_fmnt.pem
SSLSessionCacheTimeout 600
SSLOptions +StdEnvVars

<Location /zona/web/1/>
SSLVerifyClient require
SSLVerifyDepth 5
</Location>

<Location /zona/web/2/>
SSLVerifyClient require
SSLVerifyDepth 5
</Location>

<Location /zona/web/3/>
SSLVerifyClient require
SSLVerifyDepth 5
</Location>

Vamos a explicar un poco la configuración:

SSLVerifyClient none: Tenemos que añadir esta directiva ya que no queremos que realice la validación antes.

SSLCACertificateFile ruta: Ruta donde se encuentran los intermedios, esto es lo que nos permitirá que los usuarios se puedan validad.

<Location /zona/web/1/>: Primera zona web donde solicitaremos el requisito de la validación del certificado.

Para ver otros parámetros existentes ver el enlace añadido y además este:

https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#ssloptions

Un saludo

Instalar certificados intermedios en shell de Linux

Introducción

Existen ocasiones en que desde nuestro entorno linux debemos acceder a webs con unos certificados intermedios específicos (estos no están por defecto en nuestro directorio de CA). Por lo tanto debemos aprender a gestionar dichas instalaciones a través de nuestro entorno SHELL (si no disponemos de entorno gráfico).

Para ello vamos a realizar un procedimiento para instalarlo en un sistema operativo RedHat/CentOS y que nos funcione correctamente.

Instalar certificados intermedios en shell de Linux

Lo primero que utilizamos es instalar los intermedio y además hacemos una recarga para que el servidor lo detecte.

yum install ca-certificates
update-ca-trust force-enable

Una vez realizado esto lo que haremos será descargar el certificado en el directorio correspondiente. Por ejemplo con el intermedio del certificado de moneda y timbre:

cd /etc/pki/ca-trust/source/anchors/
wget https://www.sede.fnmt.gob.es/documents/10445900/10526749/FNMTClase2CA.cer

Ejecutamos la actualización de las CA

update-ca-trust extract

Con esto tendremos nuestros certificados intermedios instalados y podemos realizar un curl a la web sin tener problemas de certificado.