En una configuración de Active Directory, las "plantillas de certificado" deben ser utilizadas por los clientes y por la propia CA ("Servicios de certificado AD").
Para la CA , las plantillas describen cómo se emitirán los certificados, incluyendo:
- El contenido del certificado, incluidas todas las extensiones, el período de validez, etc.
- Las condiciones de emisión, por ejemplo, si la solicitud debe estar firmada por un agente de RA autorizado o no.
- Los derechos de acceso a la plantilla.
Hay muchas variaciones, porque las plantillas se han enriquecido a lo largo de las versiones de Windows (por lo tanto, existen las plantillas "Windows 2000", "Windows 2003" y "Windows 2008"), y la propia CA puede ser "independiente" o " empresa ": en este último caso, se supone que la CA se alimenta automáticamente de las cuentas AD y ACL para saber si se debe cumplir una solicitud de certificado determinada, mientras que en una CA independiente, la mayoría de las solicitudes estarán sujetas a una intervención manual de el administrador de CA (que hará clic en "emitir" o "denegar").
El árbol de AD contiene todas las plantillas conocidas (puedes crear las tuyas propias). La propia CA (el servicio AD CS) "publicará" algunas de estas plantillas: esta es la lista de las plantillas que realmente utilizará el servicio.
En cualquier caso, el contenido de las solicitudes de certificado de los clientes será mayormente ignorado (excepto, por supuesto, la clave pública); Las plantillas deciden lo que va en los certificados, no la solicitud. Hay excepciones; por ejemplo, la plantilla puede especificar que el Nombre del sujeto se tomará de la solicitud, en cuyo caso el SubjectDN y la extensión del Nombre alternativo del sujeto se importará "tal cual" desde la solicitud (en el momento de la configuración , puede recibir una advertencia de la GUI de que tal configuración en una "PKI de empresa" puede ser peligrosa porque quien tenga permiso, a nivel de AD, para solicitar dicho certificado, puede poner un nombre arbitrario allí, por lo que mejor verifique sus derechos de acceso).
Para el cliente , las plantillas son recomendables: documentan el tipo de certificado que los clientes pueden solicitar y lo que deben incluir en la solicitud. Por ejemplo, la plantilla puede indicar que los clientes usarán un CSP específico (Proveedor de servicios criptográficos) para generar el par de claves; Dado que la CA no puede verificar realmente que se utilizó el CSP especificado, esto es solo para el beneficio de los clientes. Tanto el cliente como el servidor utilizan algunas otras configuraciones (por ejemplo, el tamaño de la clave).
La plantilla solo puede ser utilizada por clientes que tengan acceso al servidor de AD, es decir, dentro del dominio. Los clientes que se encuentran fuera del dominio deben desarrollar sus solicitudes de la forma que consideren adecuada, según la información transmitida fuera de banda. Un método habitual, en el mundo de Windows, para que un cliente fuera de dominio genere una solicitud de certificado, es usar certreq.exe
herramienta de línea de comandos con un" archivo de política "y la opción -new
.
CertEnroll es una API programática que se utiliza en el lado del cliente; encapsula varias funcionalidades:
- CertEnroll puede generar una nueva solicitud de certificado (incluida la generación de pares de claves). Puede hacerlo alimentando parámetros de solicitud provistos por programación (por ejemplo, tipo y tamaño de clave). También puede acceder automáticamente al servidor de AD para obtener la información de una plantilla publicada.
- CertEnroll puede hablar con la CA para enviar la solicitud.
- CertEnroll guarda localmente las solicitudes (en un almacén de certificados dedicado) para que, cuando se reciba e importe el certificado, se pueda restaurar el enlace con la clave privada (que nunca abandonó la máquina cliente).
Para resumir:
- Las plantillas de certificado son el método mediante el cual puede configurar lo que la CA pone en los certificados que emite y bajo qué condiciones puede emitir los certificados.
- Se supone que los clientes envían solicitudes que "funcionan" con lo que espera la CA (por ejemplo, tipo y tamaño de clave). Los clientes pueden usar las plantillas para obtener esa información, si realmente tienen acceso a las plantillas (es decir, los clientes están dentro del dominio). El uso de plantillas por parte de los clientes no es obligatorio.
- Sin embargo, cuando un cliente solicita un certificado, la CA debe de alguna manera "saber" con qué plantilla se relaciona la solicitud. El nombre de la plantilla se puede incluir dentro de la solicitud (como una extensión específica de Microsoft) o se puede proporcionar junto con la solicitud; CertEnroll y
certreq.exe
saben cómo hacerlo.