Makecert.exe (Certificate Creation-Tool)

Aktualisiert: April 2011

Das Certificate Creation-Tool generiert X.509-Zertifikate, die ausschließlich für Testzwecke bestimmt sind. Es erstellt ein Schlüsselpaar aus einem öffentlichen und einem privaten Schlüssel für digitale Signaturen und speichert diese in einer Zertifikatsdatei. Dieses Tool weist das Schlüsselpaar auch einem angegebenen Herausgebernamen zu und erstellt ein X.509-Zertifikat, das einen vom Benutzer angegebenen Namen an den öffentlichen Teil des Schlüsselpaares bindet.

Makecert.exe enthält Basisoptionen und erweiterte Optionen. Die Basisoptionen werden meist zum Erstellen von Zertifikaten verwendet. Die erweiterten Optionen stellen eine höhere Flexibilität zur Verfügung.

Von diesem Tool generierte private Zertifikatsschlüssel dürfen nicht in SNK-Dateien gespeichert werden. Wenn ein privater Schlüssel gespeichert werden muss, sollten Sie einen Schlüsselcontainer verwenden. Weitere Informationen zum Speichern eines privaten Schlüssels in einem Schlüsselcontainer finden Sie unter Gewusst wie: Speichern von asymmetrischen Schlüsseln in einem Schlüsselcontainer.

Hinweis

Zum sicheren Speichern Ihrer Zertifikate sollten Sie einen Zertifikatsspeicher verwenden.In den von diesem Tool verwendeten SNK-Dateien werden private Schlüssel ungeschützt gespeichert.Wenn Sie eine SNK-Datei erstellen oder importieren, sollten Sie sie während der Verwendung sichern und nach Verwendung entfernen.

Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.

  • Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.

    – oder –

    Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).

  • Geben Sie an der Eingabeaufforderung Folgendes ein:

makecert [options] outputCertificateFile

Argument

Beschreibungen

outputCertificateFile

Der Name der CER-Datei, in die das X.509-Testzertifikat geschrieben wird.

Basisoptionen

Option

Beschreibungen

-n Name

Gibt den Zertifikatsnamen des Antragstellers an. Dieser Name muss dem X.500-Standard entsprechen. Am einfachsten wird ein Namen in doppelten Anführungszeichen angegebenen, dem CN= vorangestellt ist, z. B. -n "CN=myName".

-pe

Markiert den generierten privaten Schlüssel als exportierbar. Damit kann der private Schlüssel in das Zertifikat aufgenommen werden.

-sk Schlüsselname

Gibt den Speicherort des Schlüsselcontainers, der den privaten Schlüssel enthält, für den Antragsteller an. Wenn kein Schlüsselcontainer vorhanden ist, wird dieser erstellt.

-sr Speicherort

Gibt den Speicherort für den Zertifikatsspeicher des Antragstellers an. location kann entweder currentuser (Standard) oder localmachine sein.

-ss Speicher

Gibt den Namen für den Zertifikatsspeicher des Antragstellers an, in dem das ausgegebene Zertifikat gespeichert wird.

-# Zahl

Gibt eine Seriennummer von 1 bis 2,147,483,647 an. Der Standard ist ein eindeutiger von "Makecert.exe" generierter Wert.

-$ authority

Gibt die Signierungsstelle des Zertifikats an, für die commercial (Zertifikate werden von kommerziellen Softwareherausgebern verwendet) oder individual (Zertifikate werden von individuellen Softwareherausgebern verwendet) festgelegt werden muss.

-?

Zeigt die Befehlssyntax mit einer Liste der Basisoptionen für das Tool an.

-!

Zeigt die Befehlssyntax mit einer Liste der erweiterten Optionen für das Tool an.

Erweiterte Optionen

Option

Beschreibungen

-a Algorithmus

Gibt den Algorithmus der Signatur an. algorithm muss md5, sha1 (Standardwert), sha256, sha384 oder sha512 sein.

-b mm/dd/yyyy

Gibt den Anfang der Gültigkeitsperiode an. Wird standardmäßig auf das aktuelle Datum festgelegt.

-crl

Generiert eine CRL (Certificate Revocation List) anstelle eines Zertifikats.

-cy certType

Gibt den Zertifikatstyp an. Gültige Werte sind end für Endentität und authority für Zertifizierungsstelle.

-e mm/dd/yyyy

Gibt das Ende der Gültigkeitsperiode an. Der Standardwert ist 12/31/2039 11:59:59 GMT.

-eku oid[,oid…]

Fügt eine Liste von durch Trennzeichen getrennten, erweiterten Objektbezeichnern (OIDs) zur Schlüsselverwendung in das Zertifikat ein.

-h Zahl

Gibt die maximale Höhe der Struktur unterhalb dieses Zertifikats an.

-ic Datei

Gibt die Zertifikatsdatei des Herausgebers an.

-ik Schlüsselname

Gibt den Namen des Schlüsselcontainers des Herausgebers an.

-iky keytype

Gibt den Schlüsseltyp des Herausgebers an. Dieser muss einer der folgenden Werte sein: signature (gibt an, dass der Schlüssel für eine digitale Signatur verwendet wird), exchange (gibt an, dass der Schlüssel zur Verschlüsselung und zum Schlüsselaustausch verwendet wird) oder eine ganze Zahl, die einen Anbietertyp darstellt. Standardmäßig können Sie 1 für einen Austauschschlüssel und 2 für einen Signaturschlüssel übergeben.

-in Name

Gibt den gemeinsamen Namen des Zertifikats des Herausgebers an.

-ip Anbieter

Gibt den CryptoAPI-Anbieternamen des Herausgebers an. Informationen zum CryptoAPI-Anbieternamen finden Sie unter der Option –sp.

-ir Speicherort

Gibt den Speicherort für den Zertifikatsspeicher des Herausgebers an. location kann entweder currentuser (Standard) oder localmachine sein.

-is Speicher

Gibt den Namen des Zertifikatsspeichers des Herausgebers an.

-iv pvkFile

Gibt die Datei für den privaten Schlüssel (.pvk) des Herausgebers an.

-iy Typ

Gibt den CryptoAPI-Anbietertyp des Herausgebers an. Informationen zum CryptoAPI-Anbietertyp finden Sie unter der Option –sy.

-l link

Verknüpfungen zu den Richtlinieninformationen (z. B. eine URL).

-len Zahl

Gibt die generierte Schlüssellänge in Bits an.

-m Zahl

Gibt die Gültigkeitsdauer des Zertifikats in Monaten an.

-nscp

Fügt die Netscape-Erweiterung für die Clientautorisierung ein.

-r

Erstellt ein selbstsigniertes Zertifikat.

-sc-Datei

Gibt die Zertifikatsdatei des Antragstellers an.

-sky keytype

Gibt den Schlüsseltyp des Antragstellers an. Dieser muss einer der folgenden Werte sein: signature (gibt an, dass der Schlüssel für eine digitale Signatur verwendet wird), exchange (gibt an, dass der Schlüssel zur Verschlüsselung und zum Schlüsselaustausch verwendet wird) oder eine ganze Zahl, die einen Anbietertyp darstellt. Standardmäßig können Sie 1 für einen Austauschschlüssel und 2 für einen Signaturschlüssel übergeben.

-sp Anbieter

Gibt den CryptoAPI-Anbieternamen des Antragstellers an, der in den Registrierungsunterschlüsseln von HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider definiert sein muss. Wenn sowohl –sp als auch –sy vorhanden sind, muss der Typ des CryptoAPI-Anbieters dem Type-Wert des Unterschlüssels des Anbieters entsprechen.

-sv pvkFile

Gibt die Datei für den privaten Schlüssel (.pvk) des Antragstellers an. Die Datei wird erstellt, sofern sie noch nicht vorhanden ist.

-sy Typ

Gibt den CryptoAPI-Anbietertyp des Antragstellers an, der in den Registrierungsunterschlüsseln von HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types definiert sein muss. Wenn sowohl –sy als auch –sp vorhanden sind, muss der Name des CryptoAPI-Anbieters dem Name-Wert des Unterschlüssels des Anbietertyps entsprechen.

-tbs

Gibt das zu signierenden Zertifikat oder die CRL-Datei an.

Beispiele

Der folgende Befehl erstellt ein vom Standardstammverzeichnis des Tests herausgegebenes Testzertifikat und schreibt es in testCert.cer.

makecert testCert.cer

Der folgende Befehl erstellt ein vom Standardstammverzeichnis des Tests herausgegebenes Zertifikat und speichert es in einem Zertifikatsspeicher.

makecert -ss testCertStore

Der folgende Befehl erstellt ein vom Standardstammverzeichnis des Tests herausgegebenes Zertifikat und speichert es in einem Zertifikatsspeicher. Das Zertifikat wird explizit im currentuser-Speicher platziert.

makecert -ss testCertStore -sr currentuser

Der folgende Befehl erstellt mit dem Schlüsselcontainer und dem X.500-Namen für das Zertifikat des Antragstellers ein Testzertifikat und schreibt dieses in textXYZ.cer.

makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer 

Der folgende Befehl erstellt ein vom Standardstammverzeichnis des Tests herausgegebenes Zertifikat, erstellt eine PVK-Datei und gibt das Zertifikat an den Speicher und die Datei aus.

makecert -sv testCert.pvk -ss testCertStore testCert.cer

Der folgende Befehl erstellt ein vom Standardstammverzeichnis des Tests herausgegebenes Zertifikat, erstellt einen Schlüsselcontainer und gibt das Zertifikat an den Speicher und die Datei aus.

makecert -sk myTestKey -ss testCertStore testCert.cer

Der folgende Befehl erstellt ein selbstsigniertes Zertifikat, gibt als Namen des Antragstellers "CN=XYZ Company" an, legt den Anfang und das Ende der Gültigkeitsperiode fest, fügt den Schlüssel in den my-Speicher ein, gibt einen Austauschschlüssel an und konfiguriert den privaten Schlüssel als exportierbar.

makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my

Mit dem folgenden Befehl wird ein selbstsigniertes Zertifikat erstellt, das verwendet werden kann, um eine Webanwendung zu testen, die SSL (Secure Sockets Layer) auf einem Webserver verwendet, deren URL www.example.com ist. Die OID, die von der –eku-Option definiert wird, identifiziert dieses Zertifikat als SSL-Serverzertifikat. Das Zertifikat wird im my-Speicher gespeichert und ist auf Computerebene (anstelle der Benutzerebene) verfügbar. Der private Schlüssel des Zertifikats ist exportierbar, und das Zertifikat ist vom 10. Mai 2010 bis zum 22. Dezember 2011 gültig.

Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12

Die folgenden Befehle erstellen Zertifikate und speichern sie im Speicher. Der erste Befehl erstellt mithilfe des Standardstammverzeichnisses des Tests ein Zertifikat und speichert das Zertifikat in einem Speicher. Der zweite Befehl erstellt anhand des neu erstellten Zertifikats ein weiteres Zertifikat und speichert das zweite Zertifikat in einem anderen Speicher.

makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore

Die folgenden Befehle erstellen Zertifikate und speichern sie im Speicher. Der erste Befehl speichert das Zertifikat im my-Speicher. Der zweite Befehl erstellt anhand des neu erstellten Zertifikats ein weiteres Zertifikat. Da im my-Speicher mehrere Zertifikate vorhanden sind, identifiziert der zweite Befehl das erste Zertifikat anhand seines Anzeigenamens.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore

Die folgenden Befehle erstellen Zertifikate und speichern sie in Dateien und im Speicher. Der erste Befehl erstellt mithilfe des Standardstammverzeichnisses des Tests ein Zertifikat und speichert das Zertifikat im my-Speicher und in einer Datei. Der zweite Befehl erstellt anhand des neu erstellten testCert.cer-Zertifikats ein weiteres Zertifikat. Da im my-Speicher mehrere Zertifikate vorhanden sind, identifiziert der zweite Befehl das erste Zertifikat eindeutig anhand des Namens der Zertifikatsdatei.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore

Siehe auch

Referenz

Cert2spc.exe (Software Publisher Certificate Test-Tool)

Visual Studio- und Windows SDK-Eingabeaufforderungen

Weitere Ressourcen

.NET Framework-Tools

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

April 2011

Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen.

Informationsergänzung.

Mai 2010

Gründlich überarbeitet.

Kundenfeedback.