Freigeben über


enrollCustomPKCS10

Im Beispiel enrollCustomPKCS10 wird eine benutzerdefinierte PKCS #10-Anforderung erstellt, an eine eigenständige Zertifizierungsstelle (Ca) übermittelt und das ausgestellte Zertifikat im Zertifikatspeicher installiert. Eine eigenständige Zertifizierungsstelle erfordert keine Active Directory-Instanz und verwendet keine Vorlagen.

Standort

Wenn Sie das Microsoft Windows Software Development Kit (SDK) installieren, wird das Beispiel standardmäßig im Ordner %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollCustomPKCS10 installiert.

Diskussion (Discussion)

Beispiel für "enrollCustomPKCS10":

  1. Verarbeitet die Befehlszeilenargumente. Die Befehlszeile sollte den Namen des X.500-Zertifikatantragstellers, den E-Mail-Namen (RFC822) und einen EKU-Objektbezeichner (Enhanced Key Usage, EKU) enthalten. Sie können beispielsweise die folgenden Argumente angeben, um zu registrieren user1@example.com:
    • Antragstellername: "CN=user1,DC=example,DC=com"
    • RFC822-Name: user1@example.com
    • Clientauthentifizierung EKU OID: 1.3.6.1.5.5.7.3.2
  2. Erstellt ein IX509CertificateRequestPkcs10-Objekt und initialisiert es für den Endbenutzer, indem der ContextUser-Wert der X509CertificateEnrollmentContext-Enumeration angegeben wird.
  3. Erstellt ein IX500DistinguishedName-Objekt , verwendet das -Objekt, um den Antragstellernamen in ein Bytearray zu codieren, und fügt das Array dem PKCS #10-Anforderungsobjekt hinzu.
  4. Erstellt ein IObjectId-Objekt , initialisiert es mithilfe des in der Befehlszeile angegebenen EKU-Objektbezeichners (OID), erstellt eine IObjectIds-Auflistung , fügt der Auflistung das neue IObjectId-Objekt (EKU) hinzu, verwendet die Auflistung zum Initialisieren eines IX509ExtensionEnhancedKeyUsage-Objekts und fügt dieses Objekt der Anforderung hinzu.
  5. Erstellt ein IAlternativeName-Objekt , initialisiert es mithilfe des RFC822-Namens, der in der Befehlszeile angegeben ist, Erstellt eine IAlternativeNames-Auflistung , fügt der Auflistung das neue IAlternativeName -Objekt (RFC822-Name ) hinzu, erstellt ein IX509ExtensionAlternativeNames-Objekt und fügt dieses Objekt der Anforderung hinzu.
  6. Erstellt ein IX509Enrollment-Objekt , initialisiert es mithilfe des IX509CertificateRequestPkcs10-Objekts und ruft eine Zeichenfolge ab, die eine base64-codierte Anforderung enthält.
  7. Erstellt ein ICertConfig-Objekt und verwendet es, um eine Zeichenfolge abzurufen, die die Zertifizierungsstellenkonfiguration enthält.
  8. Erstellt ein CryptoAPI ICertRequest2-Objekt und verwendet es sowie die Zeichenfolgen, die die Zertifizierungsstellenkonfiguration und die Zertifikatanforderung enthalten, um die Anforderung an die Zertifizierungsstelle zu übermitteln.
  9. Überprüft die Übermittlung status und installiert das Zertifikat im Zertifikatspeicher, wenn die Registrierung erfolgreich ist.

PKCS #10-Anforderung

Verwenden der eingeschlossenen Beispiele