Verwenden von Tools zum Signieren und Testen von Code

Mit den Tools MakeCert, Cert2SPC und Signcode können Sie Code signieren und testen. Diese Tools stehen im Ordner \Programme\IEAK\Reskit\Tools dieses IEAK Resource Kits zur Verfügung. Weitere Ressourcen finden Sie im Microsoft Internet Client SDK.

MakeCert

Verwenden Sie das Testprogramm MakeCert, um ein X.509-Testzertifikat zu erzeugen. MakeCert führt die folgenden Aufgaben durch:

  1. Erstellt ein öffentliches/privates Schlüsselpaar für digitale Unterschriften, und ordnet es einem von Ihnen gewählten Namen zu.
  2. Ordnet das Schlüsselpaar einem von Ihnen gewählten Namen für den Herausgeber zu.
  3. Erstellt ein X.509-Zertifikat, das vom Basistestschlüssel bzw. einen von Ihnen angegebenen Schlüssel, der Ihren Namen an den öffentlichen Teil des Schlüsselpaares bindet, signiert wird. Das Zertifikat wird in einer Datei und/oder in einem Systemspeicher für Zertifikate gespeichert.

MakeCert besitzt die folgende Syntax:

MakeCert [Grundoptionen | Erweiterte Optionen] Ausgabedatei

MakeCert bietet Grundoptionen und erweiterte Optionen. Grundoptionen sind die Optionen, die hauptsächlich verwendet werden, um ein Zertifikat zu erstellen. Die Erweiterten Optionen bieten höhere Flexibilität. Die Optionen für MakeCert lassen sich in drei Funktionsgruppen unterteilen:

  1. Optionen, die für die SPC-Datei-, Private-Schlüssel- und Zertifikatspeicher-Technik gelten
  2. Optionen, die ausschließlich für die SPC-Datei- und Private-Schlüssel-Technik gelten
  3. Optionen, die nur für die Zertifikatspeicher-Technik gelten

Optionen der zweiten und dritten Gruppe können nicht gleichzeitig verwendet werden. Eine Ausnahme bildet die Option -ic.

Internet Explorer 4.0-Beispiele für MakeCert

Die folgenden Beispiele zeigen, wie Zertifikate mit MakeCert und den Internet Explorer 4.0-Optionen erstellt werden.

Beispiel 1

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Speichern des Zertifikats in einer Datei.

MakeCert MeinNeuesZertifikat.cer 

Beispiel 2

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Speichern des Zertifikats in einem Zertifikatspeicher.

MakeCert -ss MeinNeuerSpeicher 

Beispiel 3

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Erstellen einer .pvk-Datei und Speichern des Zertifikats in einem Speicher und einer Datei.

MakeCert -sv MeinNeues.pvk -ss MeinNeuerSpeicher MeinNeuesZertifikat.cer 

Beispiel 4

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Erstellen eines Schlüsselcontainers und Speichern des Zertifikats in einem Speicher und einer Datei.

MakeCert -sk MeinNeuerSchlüssel -ss MeinNeuerSpeicher MeinNeuesZertifikat.cer 

Beispiel 5

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Speichern des Zertifikats in einem Speicher. Erstellen eines weiteren Zertifikats unter Verwendung des soeben erstellten Zertifikats. Speichern des zweiten Zertifikats in einem anderen Speicher.

MakeCert -sk MeinNeuerSchlüssel -ss MeinNeuerSpeicher
MakeCert -is MeinNeuerSpeicher -ss AndererSpeicher 

Beispiel 6

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Speichern des Zertifikats im Speicher MeinSpeicher. Anschließendes Erstellen eines anderen Zertifikats unter Verwendung des soeben erstellten Zertifikats. Da sich im Speicher MeinSpeicher mehr als ein Zertifikat befindet, Kennzeichnen des ersten Zertifikats unter Verwendung seines normalen Namens.

MakeCert -sk MeinNeuerSchlüssel -n "CN=XXZZYY" -ss MeinSpeicher
MakeCert -is MeinSpeicher -in "XXZZYY" -ss AndererSpeicher 

Beispiel 7

Erstellen eines Zertifikats, das vom Standard-Basistestschlüssel stammt. Speichern des Zertifikats im Speicher MeinSpeicher und in einer Datei. Anschließendes Erstellen eines anderen Zertifikats unter Verwendung des soeben erstellten Zertifikats MeinNeuesZertifikat. Da sich im Speicher MeinSpeicher mehr als ein Zertifikat befindet, eindeutiges Kennzeichnen des ersten Zertifikats unter Verwendung des Dateinamens des Zertifikats.

MakeCert -sk MeinNeuerSchlüssel -n "CN=XXZZYY" -ss MeinSpeicher MeinNeuesZertifikat.cer
MakeCert -is MeinSpeicher -ic MeinNeuesZertifikat.cer -ss AndererSpeicher 

Beispiel 8

Erstellen eines selbst-signierten Zertifikats mit dem Namen MeinNeuesBasiszertifikat unter Verwendung des Standard-Basistestschlüssels. Anschließendes Verwenden von SignCode mit dem Zertifikat, um eine Datei zu signieren.

MakeCert -sk MeinNeuerBasisschlüssel -r -ss MeinNeuesBasiszertifikat
SignCode -s MeinNeuesBasiszertifikat MeineKontrolle.exe 

Beispiel 9

Erstellen eines selbst-signierten Zertifikats mit dem Namen MeinNeuesBasiszertifikat unter Verwendung des Standard-Basistestschlüssels. Speichern von MeinNeuesBasiszertifikat im Systemspeicher für Zertifikate ca. Anschließendes Erstellen eines Zertifikats aus MeinNeuesBasiszertifikat und Signieren von Code mit dem Zertifikat.

Wenn SignCode ein Zertifikat in einem Speicher zum Signieren verwendet, wird eine Zertifikatskette vom signierenden Zertifikat bis zum Basiszertifikat aufgebaut. Alle Zertifikate in der Zertifikatskette müssen sich in einem der folgenden Zertifikatspeicher befinden MeinSpeicher, ca, spc oder root. In diesem Fall befindet sich MeinNeuesBasiszertifikat im Zertifikatspeicher ca.

MakeCert -sk MeinNeuerBasisschlüssel -r -ss ca MeinNeuesBasiszertifikat.cer
MakeCert -is ca -ic MeinNeuesBasiszertifikat.cer -ss MeineNeueSignatur 
SignCode -s MeineNeueSignatur MeineKontrolle.exe

Cert2SPC

Nachdem Sie ein Zertifikat erstellt haben, können Sie unter Verwendung des Programms Cert2SPC ein SPC (Software Publisher Certificate = Zertifikat für Softwareherausgeber) erstellen. Dieses Programm packt mehrere X.509-Zertifikate in ein signiertes PKCS #7-Datenobjekt. Beachten Sie, dass dieses Programm ausschließlich zu Testzwecken dient. Ein gültiges SPC erhalten Sie von einer Zertifizierungsagentur.

Cert2SPC besitzt die folgende Syntax:

Cert2SPC Zert1.cer Zert2.cer. . .ZertN.cer Ausgabe.spc

wobei:

Nachstehend sehen Sie ein Beispiel:

Cert2SPC MeinZert.cer MeinZert.spc 

Dies verpackt das X.509-Zertifikat MeinZert.cer in dem PKCS #7-SPC MeinZert.spc.

SignCode

Der letzte Schritt besteht darin, eine Datei unter Verwendung des Programms SignCode zu signieren. Dieses Programm führt die folgenden Aufgaben durch:

  1. Erstellen einer kryptographischen Kurzdarstellung der Datei.
  2. Signieren der Kurzdarstellung mit dem privaten Schlüssel.
  3. Kopieren der X.509-Zertifikate vom SPC in ein neues signiertes PKCS #7-Datenobjekt. Das PKCS #7-Objekt enthält die Seriennummern und Herausgeber der Zertifikate, die zum Erstellen der Signatur verwendet wurden, die Zertifikate und die signierten Informationen der Kurzdarstellung.
  4. Einbetten des Objekts in die Datei.
  5. Hinzufügen einer Zeitmarkierung zu der Datei (optional). Eine Zeitmarkierung sollte beim Signieren einer Datei immer hinzugefügt werden. SignCode kann allerdings auch eine Zeitmarkierung zu einer signierten Datei hinzufügen. Dabei gelten einige Einschränkungen (Informationen dazu finden Sie in den Beispielen nach der Tabelle mit den Optionen).

SignCode besitzt die folgende Syntax:

SignCode [Optionen] [Dateiname]

wobei: