中介
中介与客户端应用程序通信,以允许他们提交 证书请求,并(假设请求导致颁发的证书)将颁发的证书下载到客户端。 每个传输层协议都需要自身的中介。
Microsoft证书服务附带了 HTTP 中介(Web 注册页)。 中介的另一个示例是Microsoft Windows 证书 MMC 管理单元(允许调用证书请求向导)。 如果其他传输层协议用于证书服务,开发人员可以为每个所需的传输层协议创建中介。
中介使用服务器引擎提供的 ICertRequest 和 ICertConfig 接口与证书服务通信。 ICertRequest::Submit 方法用于提交 证书请求,ICertRequest::GetCertificate 用于获取生成的颁发的证书。 同样,ICertConfig::GetConfig 用于确定可用于颁发证书的证书颁发机构。
中介不依赖于语言。 它可能是用 C++、Visual Basic、Java、脚本或其他语言编写的程序。
除了从客户端收集数据以生成证书请求外,中介还可以指定请求属性。 提交到 证书颁发机构的请求 运行企业策略模块时,必须通过指定请求本身的“CertificateTemplate”属性或证书模板扩展来指示请求的证书类型。
请注意,在创建证书请求期间,开发人员(和中介)负责维护私钥的保密性。 私钥遭到入侵(失去保密性)后,这是毫无用处的。
证书服务 Web 注册页使用 证书注册接口,该接口通过在工作站上生成私钥来保护私钥。 除了维护私钥的保密性外,证书注册控制还允许中介指定加密服务提供程序、密钥规范、密钥强度和哈希算法。
证书 MMC 管理单元还使用证书注册控制(Xenroll.dll)。 但是,如果证书服务 Web 注册页导致证书注册控制资源(Xenroll.dll)在需要时下载到客户端,则证书 MMC 管理单元在 Xenroll.dll 已是可用资源的环境中运行。
除了 ICertRequest 和 ICertConfig,中介的开发人员还可以发现 证书注册接口 以及 智能卡注册控制 非常有用。