Freigeben über


enrollNestedCMC

Das Beispiel enrollNestedCMC liest eine vorhandene CMC-Zertifikatanforderung aus einer Datei, umschließt sie in eine andere CMC-Anforderung, signiert diese äußere Anforderung, sendet sie an eine Zertifizierungsstelle (CA) und speichert die Zertifikatantwort der Zertifizierungsstelle in einer Datei.

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\X509 Certificate Enrollment\VC\enrollNestedCMC installiert.

Diskussion (Discussion)

Beispiel für enrollNestedCMC:

  1. Verarbeitet die folgenden Befehlszeilenargumente:
    • Der Name der Eingabedatei.
    • Der Name der Ausgabedatei.
    • Eine optionale Anforderungsvorlage.
  2. Liest eine vorhandene CMC-Anforderung aus einer Datei als Base63-codiertes Bytearray, konvertiert das Bytearray in ein BSTR, erstellt ein IX509CertificateRequestCmc-Objekt und verwendet den BSTR zum Initialisieren des Anforderungsobjekts. Das initialisierte Objekt wird zur inneren Anforderung.
  3. Verwendet das interne Anforderungsobjekt, das im vorherigen Schritt erstellt und initialisiert wurde, um eine weitere CMC-Anforderung zu initialisieren.
  4. Ruft ein vorhandenes Signaturzertifikat ab oder erstellt eine Zertifikatanforderung aus der in der Befehlszeile angegebenen Vorlage und versucht, es zu registrieren. Die Funktionen findCertByTemplate und enrollCertByTemplate sind in enrollCommon.cpp definiert.
  5. Ruft die ISignerCertificates-Auflistung aus der äußeren CMC-Anforderung ab, erstellt ein neues ISignerCertificate-Objekt , initialisiert es mithilfe des abgerufenen Signaturzertifikats und fügt es der Auflistung hinzu.
  6. Codiert die CMC-Anforderung mithilfe von Distinguished Encoding Rules (DER) und ruft die Anforderung als BSTR ab.
  7. Erstellt ein ICertConfig-Objekt und verwendet es, um eine Zeichenfolge abzurufen, die die Konfiguration der Zertifizierungsstelle 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 status des Registrierungsprozesses und speichert die Zertifikatantwort der Zertifizierungsstelle in einer Datei. Die EncodeToFileW-Funktion ist in enrollCommon.cpp definiert.

CMC-Anforderung

Verwenden der eingeschlossenen Beispiele