intermediarios
Los intermediarios se comunican con las aplicaciones cliente para permitirles enviar solicitudes de certificado y (suponiendo que la solicitud da como resultado un certificado emitido) para descargar el certificado emitido al cliente. Cada protocolo de capa de transporte requiere su propio intermediario.
Los Servicios de certificados de Microsoft se suministran con un intermediario (las páginas de inscripción web) para HTTP. Otro ejemplo de un intermediario es el complemento MMC certificados de Microsoft Windows (que permite invocar al Asistente para solicitudes de certificado). Si se van a usar otros protocolos de capa de transporte con Servicios de certificados, un desarrollador puede crear un intermediario para cada protocolo de capa de transporte deseado.
Los intermediarios se comunican con Servicios de certificado mediante las interfaces ICertRequest e ICertConfig proporcionadas por el motor de servidor. El método ICertRequest::Submit se usa para enviar una solicitud de certificado y se usa ICertRequest::GetCertificate para obtener el certificado emitido resultante. Del mismo modo, se usa ICertConfig::GetConfig para determinar qué entidad de certificación se puede usar para emitir el certificado.
Un intermediario no depende del idioma. Puede ser un programa escrito en C++, Visual Basic, Java, script u otro lenguaje.
Además de recopilar datos del cliente para crear una solicitud de certificado, un intermediario puede especificar atributos de solicitud. Las solicitudes enviadas a una entidad de certificación que ejecuta el módulo de directivas empresariales deben indicar el tipo de certificado solicitado especificando un atributo "CertificateTemplate" o una extensión de plantilla de certificado en la propia solicitud.
Tenga en cuenta que durante la creación de una solicitud de certificado, los desarrolladores (e intermediarios) son responsables de mantener el secreto de la clave privada. Después de que una clave privada se haya puesto en peligro (perdió su secreto), es inútil.
Las páginas de inscripción web de Servicios de certificados usan las interfaces de inscripción de certificados, que protegen las claves privadas mediante su generación en la estación de trabajo. Además de mantener el secreto de la clave privada, el control de inscripción de certificados permite a un intermediario especificar el proveedor de servicios criptográficos, la especificación de clave, la intensidad de la clave y el algoritmo hash.
El complemento MMC Certificados también usa el Control de inscripción de certificados (Xenroll.dll). Sin embargo, cuando las páginas de inscripción web de Servicios de certificados hacen que el recurso control de inscripción de certificados (Xenroll.dll) se descargue en el cliente si es necesario, el complemento MMC certificados se ejecuta en un entorno donde Xenroll.dll ya es un recurso disponible.
Además de ICertRequest e ICertConfig, los desarrolladores de intermediarios pueden encontrar las interfaces de inscripción de certificados y el control de inscripción de tarjetas inteligentes para ser útil.