Поделиться через


Получение возвращенного сертификата

Когда центр сертификации (ЦС) проверяет сведения об удостоверениях запрашивающего и удостоверяется в том, что запрашивающий является владельцем закрытого ключа и что данные об этом запрашивающей организации являются точными, ЦС создает сертификат X.509, подписывает его, упаковывает его с другими необходимыми сертификатами (например, собственным сертификатом ЦС) в сообщении. и отправляет сообщение инициатору запроса. Сообщение может быть сообщением PKCS #7 или ответом CMC (шаблоны версии 2 приводят к ответу CMC).

Принимающее приложение передает сообщение элементу управления регистрации сертификатов. Затем элемент управления регистрацией сертификатов открывает сообщение и извлекает сертификаты. Пользователю будет предложено диалоговое окно с вопросом о том, будет ли пользователь принимать самозаверяемые сертификаты в корневом хранилище. Если пользователь принимает корневой сертификат, остальные сертификаты (за исключением сертификата инициатора запроса) помещаются в хранилище ЦС. Сертификат инициатора запроса помещается в хранилище сертификатов, указанное инициатором запроса в свойстве 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>