证书注册控制
必须请求向命名使用者颁发证书的应用程序可以使用证书注册控制。 它旨在接受 BSTR) (二进制字符串形式的数据。 数据可以来自网页,也可以来自 Visual Basic 或 Visual C++ 开发系统的用户界面。 证书注册控件的输出是 PKCS #10 证书请求,可发送到 证书颁发机构 (CA) 。
有关用户(即证书使用者)的必要信息由用户界面收集。 此信息作为 BSTR 输入提供给证书注册控制。 证书注册控件生成相应的签名密钥、密钥交换密钥或两个密钥对。 然后,该控件使用生成的私钥生成 PKCS #10 证书请求并签名。 然后,证书注册控制将密钥对链接到临时虚拟证书,该证书存储在请求存储中,直到从证书颁发机构返回颁发的证书。 最后,应用程序将 PKCS #10 证书请求发送到 CA。
如果 CA 批准证书请求,则 CA 会创建包含公钥的证书。 CA 还会对证书进行签名并返回。
从 CA 返回请求的证书时,应用程序会将 PKCS #7 消息传递回证书注册控件,其中从 PKCS #7 消息中提取证书或证书链。 证书和信任链中的任何其他证书都存储在 证书存储中。 不会以任何方式修改返回的证书。 任何证书感知应用程序现在可以从存储区访问此证书。
管理员使用智能卡注册控制代表智能卡用户进行注册。 注册过程会颁发一个存储在用户的智能卡上的证书。
智能卡注册控件包含在 Scrdenrl.dll 中,由一个对象 SCrdEnr 组成。 Scrdenrl.dll中不包含其他对象。 此智能卡注册对象可与脚本语言(如 Visual Basic Scripting Edition (VBScript) )一起使用。
必须在运行智能卡注册控制的计算机上安装智能卡读卡器。
此外,智能卡颁发者必须已获取基于“EnrollmentAgent”证书模板的签名证书。 此签名证书将用于对代表智能卡接收方生成的证书请求进行签名。 默认情况下,域管理员被授予基于“注册代理”模板请求证书的权限。 可以通过 Active Directory 站点和服务 MMC 管理单元 (向其他用户授予注册“EnrollmentAgent”证书的权限) ;但是,这样做允许此用户自行颁发具有域管理员权限的智能卡。