接收返回的证书

当证书颁发机构 (CA) 验证了请求者的标识信息,并确信请求者是私钥的所有者,并且有关该请求者的数据是准确的时,CA 会构造 X.509 证书,对其进行签名,并将其与任何其他所需证书 ((如 CA 自己的证书) )打包在消息中, 并将消息发送给请求者。 该消息可以是 PKCS #7 消息或 CMC 响应 (V2 模板导致 CMC 响应) 。

接收应用程序将消息传递给证书注册控制。 然后,证书注册控制打开消息并提取证书。 系统会提示用户出现一个对话框,询问用户是否接受“根”存储中的自签名证书。 如果用户接受根证书,则除请求者的证书) 外,其余证书 (放置在“CA”存储中。 请求者的证书放置在请求者在 MyStoreName 属性中指定的证书存储中。

以下示例演示如何在网页中使用 Visual Basic Scripting Edition (VBScript) 和 HTML 来接收和存储返回的证书。

<HTML>
<TITLE>Certificate Enrollment Acceptance HTML Page
</TITLE>

<OBJECT  classid="clsid:127698E4-E730-4E5C-A2b1-21490A70C8A1"
    CODEBASE="xenroll.dll"
    id=IControl >
</OBJECT>

<SCRIPT language="VBScript">

<!--

Option Explicit 

'Accept the certificate subroutine.

Sub AcceptCertSub

On Error Resume Next

' Get the issued certificate.
' The following value, "PKCS7", represents the received message. 
' Actually, this value must be supplied through the design of
' the receiving application.
' A possible implementation is as follows: after using 
' ICertRequest.Submit to submit the PKCS #10, call 
' ICertRequest.GetLastStatus to confirm successful certificate 
' creation, and then call ICertRequest.GetCertificate to retrieve 
' the certificate.

document.result.result.value = "PKCS7"

    Call IControl.AcceptPKCS7(document.result.result.value)

    If err.Number = 0 Then
        navigate "..\done.htm"
    Else
        Alert "Error: " & Hex(err)
    End If

    End sub

    ' Decline the certificate sub-routine.
    Sub NoAcceptCertSub
    navigate "..\notdone.htm"
    End sub
-->
</SCRIPT>
</BODY>
</HTML>