lunes, 29 de junio de 2015

Desactivar la comprobación de la lista de revocación de certificados de la FNMT en IIS

Cuando montamos un entorno web con comprobación de certificados del cliente de la FNMT nos encontramos con que al configurar nuestro IIS para que solicite el certificado no funciona porque no puede comprobar la lista de revocación de certificados de la entidad emisora. Al no poder comprobarla se para el proceso. Si queremos evitar esta comprobación (puesto que cuesta dinero hacerla) en nuestro IIS podéis seguir los siguientes sencillos pasos:

1. En la consola ejecutamos el siguiente comando

1
netsh http show sslcert
Este comando nos mostrará un resultado como el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Enlaces de certificado SSL:
 
---------------------------
 
IP:puerto : 0.0.0.0:443
 
Hash del certificado : 5c92adfea676f3867081f6579e586391cde60691
 
Id. de la aplicación : {4dc3e181-e14b-4a21-b022-59fc669b0914}
 
Nombre del almacén de certificados : MY
 
Comprobar revocación de certificado de cliente : Enabled
 
Comprobar revocación usando sólo el certificado de cliente almacenado en caché : Disabled
 
Comprobación de uso : Enabled
 
Hora de actualización de la revocación : 0
 
Tiempo de espera de recuperación de dirección URL: 0
 
Identificador de Ctl : (null)
 
Nombre del almacén de Ctl : (null)
 
Uso del asignador de DS : Disabled
 
Negociar certificado de cliente : Disabled
En la información que nos da aparece el apartado “Comprobar revocación de certificado de cliente” a Enabled. Debemos cambiar ese valor a Disabled para que no lo compruebe. Para ello ejecutamos las siguientes instrucciones.

2.  Eliminar la información de SSL para la aplicación

Lo primero es eliminar la información que dispone IIS sobre el estado SSL de la aplicación para después recrearla de nuevo con el parámetro cambiado. Antes de hacer nada es indispensable guardarse los valores de los apartadosHash de certificado e Id de aplicación puesto que los vamos a necesitar.
1
netsh http delete sslcert ipport=0.0.0.0:443

3. Recreamos el estado SSL con la comprobación desactivada

Ejecutamos el siguiente comando en el que le indicamos que el parámetro verifyclientcertrevocation sea disable.
1
netsh http add sslcert ipport=0.0.0.0:443 certhash=4bb683b8932675addcd9f6609e07b2a6b9c686dc appid={4dc3e181-e14b-4a21-b022-59fc669b0914} certstorename=MY verifyclientcertrevocation=disable
4. Comprobamos la configuración
Ejecutamos de nuevo el comando para comprobar que se ha modificado la configuración:
1
netsh http show sslcert
Tened en cuenta que tenéis que tener ya configurada vuestra aplicación en el IIS para que solicite los certificados de cliente antes de realizar estas instrucciones y que para cada aplicación variarán los parámetros certhashappIdipport.