enrollCustomPKCS10
Im Beispiel enrollCustomPKCS10 wird eine benutzerdefinierte PKCS # 10-Anforderung erstellt, an eine eigenständige Zertifizierungsstelle übermittelt und das ausgestellte Zertifikat im Zertifikatspeicher installiert. Für eine eigenständige Zertifizierungsstelle ist Active Directory nicht erforderlich, und es werden keine Vorlagen verwendet.
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)
Das Beispiel enrollCustomPKCS10:
- Verarbeitet die Befehlszeilenargumente. Die Befehlszeile sollte den X.500-Zertifikatssubjektnamen, den E-Mail-Namen (RFC822) und einen EKU-Objektbezeichner (Enhanced Key Usage, erweiterte Schlüsselverwendung) enthalten. Sie können z. B. die folgenden Argumente angeben, um zu user1@example.com registrieren:
- Antragstellername: "CN=user1,DC=example,DC=com"
- RFC822-Name: user1@example.com
- EKU-OID für Clientauthentifizierung: 1.3.6.1.5.5.7.3.2
- Erstellt ein IX509CertificateRequestPkcs10-Objekt und initialisiert es für den Endbenutzer, indem der ContextUser-Wert der X509CertificateEnrollmentContext-Enumeration angegeben wird.
- 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.
- 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, um ein IX509ExtensionEnhancedKeyUsage-Objekt zu initialisieren, und fügt dieses Objekt der Anforderung hinzu.
- Erstellt ein IAlternativeName-Objekt, initialisiert es mit dem in der Befehlszeile angegebenen RFC822-Namen, 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.
- Erstellt ein IX509Enrollment-Objekt, initialisiert es mit dem IX509CertificateRequestPkcs10-Objekt und ruft eine Zeichenfolge ab, die eine Base64-codierte Anforderung enthält.
- Erstellt ein ICertConfig-Objekt und verwendet es, um eine Zeichenfolge abzurufen, die die Zertifizierungsstellenkonfiguration enthält.
- 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.
- Überprüft den Übermittlungsstatus und installiert bei erfolgreicher Registrierung das Zertifikat im Zertifikatspeicher.