
Para un proyecto de automatización del hogar, creé una API (escrita en ASP.NET y alojada en IIS) y escribí mi propia aplicación de Android para comunicarme con esta API. Para evitar que las personas accedan a puntos finales específicos en esta API, quiero proteger los puntos finales que se supone que no son públicos. Algunas permanecerán públicas en mi panel de estadísticas.
Tengo un certificado PKI de cliente, que compré de una organización oficial y reconocida por el gobierno, para la aplicación y tiene incluida una URL de respuesta OCSP. Cuando la aplicación accede a los puntos finales protegidos, se incluye este certificado. Ahora el último paso sería que el servidor verifique la validez de este certificado en las solicitudes entrantes y se me ocurrieron los siguientes escenarios posibles:
- El certificado es válido
- La jerarquía de CA del certificado no es válida (soy programador, así que me disculpo si eliminé esa oración)
- El certificado ha caducado (supongo que el respondedor OCSP lo devolverá)
- No incluye certificado
¿Puede IIS resolver este problema? Realmente solo encontré el grapado OCSP que no está relacionado con el certificado del cliente. Básicamente, el protocolo de enlace TLS debe cancelarse para que ni siquiera se pueda acceder a la API.
Estoy usando HAProxy para enrutar las solicitudes al servidor correcto en mi red. Entonces, si IIS es imposible, ¿HAProxy podría hacer esto?
¡Gracias!
Respuesta1
IIS puede validar certificados de clientes mediante OCSP. HAProxy no lo hará hasta donde yo sé. Lo mejor que puede hacer es pasar el certificado del cliente al backend de IIS.
Tenga en cuenta que sólo utiliza OCSP o Lista de revocación de certificados (CRL) para comprobar el estado de revocación de un certificado, nada más.
Por lo tanto, la validación de un certificado seguirá consistiendo en verificar la cadena desde el certificado hasta un ancla de confianza, verificar que el certificado no haya caducado y verificar que el certificado tenga el uso correcto de la clave; independientemente de si se utilizan OCSP (o CRL).