Gewusst wie: Erstellen von temporären Zertifikaten für die Verwendung während der Entwicklung
Wenn Sie mithilfe von Windows Communication Foundation (WCF) einen sicheren Dienst oder Client entwickeln, müssen Sie häufig ein X.509-Zertifikat angeben, das für die Anmeldeinformationen verwendet wird. Das Zertifikat ist normalerweise Teil einer Zertifikatskette mit einer Stammstelle, die im Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen des Computers enthalten ist. Wenn Sie über eine Zertifikatskette verfügen, können Sie einen Bereich mit Zertifikatsätzen angeben, wobei die Stammzertifizierungsstelle normalerweise von Ihrer Organisation bzw. Ihrem Geschäftsbereich stammt. Um dies zur Entwicklungszeit zu emulieren, können Sie zwei Zertifikate erstellen, um die Sicherheitsanforderungen zu erfüllen. Beim ersten Zertifikat handelt es sich um ein selbstsigniertes Zertifikat, das in den Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen eingefügt wird. Das zweite Zertifikat wird aus dem ersten Zertifikat erstellt und entweder in den persönlichen Speicher unter "Lokaler Computer" oder in den persönlichen Speicher unter "Aktueller Benutzer" eingefügt. In diesem Thema sind die Schritte zur Erstellung dieser beiden Zertifikate beschrieben. Dabei wird das Certificate Creation Tool (MakeCert.exe) verwendet, das im .NET Framework-SDK enthalten ist.
Hinweis: |
---|
Die Zertifikate, die das Certificate Creation-Tool generiert, werden nur zu Testzwecken bereitgestellt. Beim Bereitstellen eines Diensts oder Clients sollten Sie ein geeignetes Zertifikat einer Zertifizierungsstelle verwenden. Dies kann entweder von einem Windows Server 2003-Zertifikatsserver Ihrer Organisation oder von einem Drittanbieter stammen. Standardmäßig erstellt das Certificate Creation Tool (MakeCert.exe) Zertifikate, deren Stammzertifizierungsstelle als "Root Agency" bezeichnet wird. Da sich die Stammzertifizierungsstelle ("Root Agency") nicht im Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen befindet, sind diese Zertifikate nicht sicher. Indem Sie ein selbstsigniertes Zertifikat erstellen, das in den Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen eingefügt wird, können sie eine Entwicklungsumgebung anlegen, die eine bessere Simulation Ihrer Bereitstellungsumgebung darstellt. |
Weitere Informationen über zum Erstellen und Verwenden von Zertifikaten finden Sie unter Verwenden von Zertifikaten. Weitere Informationen über zum Verwenden eines Zertifikats für die Anmeldeinformationen finden Sie unter Sichern von Diensten und Clients. Ein Lernprogramm zur Verwendung der Microsoft Authenticode-Technologie finden Sie unter Authenticode Overviews and Tutorials.
So erstellen Sie ein selbstsigniertes Stammzertifizierungsstellen-Zertifikat und exportieren den privaten Schlüssel
Verwenden Sie das Tool MakeCert.exe mit den folgenden Schaltern:
-n subjectName. Gibt den Namen des Antragstellers an. Normalerweise wird dem Namen des Antragstellers als Präfix "CN = " ("Common Name", gemeinsamer Name) hinzugefügt.
-r. Gibt an, dass das Zertifikat selbstsigniert ist.
-sv privateKeyFile. Gibt die Datei an, die den Container für den privaten Schlüssel enthält.
Der folgende Befehl erstellt zum Beispiel ein selbstsigniertes Zertifikat mit dem Antragstellernamen "CN=TempCA".
makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer
Sie werden aufgefordert, ein Kennwort anzugeben, um den privaten Schlüssel zu schützen. Dieses Kennwort ist erforderlich, wenn sie ein von diesem Stammzertifikat signiertes Zertifikat erstellen.
So erstellen Sie ein neues von einem Stammzertifizierungsstellen-Zertifikat signiertes Zertifikat
Verwenden Sie das Tool MakeCert.exe mit den folgenden Schaltern:
-sk subjectKey. Der Speicherort des Schlüsselcontainers des Antragstellers, in dem der private Schlüssel gespeichert ist. Wenn kein Schlüsselcontainer vorhanden ist, wird ein Schlüsselcontainer erstellt. Wenn weder die Option "-sk" noch die Option "-sv" verwendet wird, wird standardmäßig ein Schlüsselcontainer mit dem Namen "JoeSoft" erstellt.
-n subjectName. Gibt den Namen des Antragstellers an. Normalerweise wird dem Namen des Antragstellers als Präfix "CN = " ("Common Name", gemeinsamer Name) hinzugefügt.
-iv issuerKeyFile. Gibt die Datei für den privaten Schlüssel des Herausgebers an.
-ic issuerCertFile. Gibt den Speicherort für das Zertifikat des Herausgebers an.
Der folgende Befehl erstellt zum Beispiel ein Zertifikat, das von der Stammzertifizierungsstelle
TempCA
mit dem Antragstellernamen"CN=SignedByCA"
signiert wird, indem der private Schlüssel des Herausgebers verwendet wird.makecert -sk SignedByCA -iv TempCA.pvk -n "CN=SignedByCA" -ic TempCA.cer SignedByCA.cer -sr currentuser -ss My
Installieren eines Zertifikats im Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen
Nachdem ein selbstsigniertes Zertifikat erstellt wurde, können Sie es im Speicher der vertrauenswürdigen Stammzertifizierungsstellen installieren. Alle Zertifikate, die zu diesem Zeitpunkt mit dem Zertifikat signiert sind, werden vom Computer als vertrauenswürdig eingestuft. Aus diesem Grund sollten Sie das Zertifikat aus dem Speicher löschen, sobald Sie es nicht mehr benötigen. Wenn Sie dieses Stammzertifizierungsstellen-Zertifikat löschen, verlieren auch alle anderen Zertifikate, die zusammen damit signiert wurden, ihre Zertifizierung. Bei Stammzertifizierungsstellen-Zertifikaten handelt es sich einfach um einen Mechanismus, bei dem der Gültigkeitsbereich einer Gruppe von Zertifikaten festgelegt werden kann. Bei der Verwendung von Peer-to-Peer-Anwendungen ist eine Stammzertifizierungsstelle zum Beispiel normalerweise nicht erforderlich, weil Sie der Identität einer Person einfach aufgrund ihres bereitgestellten Zertifikats vertrauen.
So installieren Sie ein selbstsigniertes Zertifikat im Speicher mit den vertrauenswürdigen Stammzertifizierungsstellen
Öffnen Sie das Zertifikat-Snap-In. Weitere Informationen finden Sie unter Vorgehensweise: Anzeigen von Zertifikaten mit dem MMC-Snap-In.
Öffnen Sie den Ordner, um das Zertifikat zu speichern, also entweder Lokaler Computer oder Aktueller Benutzer.
Öffnen Sie den Ordner Vertrauenswürdige Stammzertifizierungsstellen.
Klicken Sie mit der rechten Maustaste auf den Ordner Zertifikate, und klicken Sie auf Alle Aufgaben und anschließend auf Importieren.
Folgen Sie den Anweisungen des Assistenten auf dem Bildschirm, um die Datei TempCa.cer in den Speicher zu importieren.
Verwenden von Zertifikaten mit WCF
Nach dem Einrichten der temporären Zertifikate können diese verwendet werden, um WCF-Lösungen zu entwickeln, mit denen Zertifikate als Clientanmeldeinformationstyp angegeben werden. So gibt beispielsweise die folgende XML-Konfiguration Nachrichtensicherheit und ein Zertifikat als Clientanmeldeinformationstyp an.
So geben Sie ein Zertifikat als Clientanmeldeinformationstyp an
Verwenden Sie in der Konfigurationsdatei für einen Dienst die folgende XML, um den Sicherheitsmodus auf die Nachrichtenebene und den Clientanmeldeinformationstyp auf Zertifikate festzulegen:
<bindings> <wsHttpBinding> <binding name="CertificateForClient"> <security> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings>
Verwenden Sie in der Konfigurationsdatei für einen Client die folgende XML, um anzugeben, dass sich das Zertifikat im Speicher des Benutzers befindet und durch Durchsuchen des SubjectName-Felds nach dem Wert "CohoWinery" gefunden wird:
<behaviors>
<endpointBehaviors>
<behavior name="CertForClient">
<clientCredentials>
<clientCertificate findValue="CohoWinery" x509FindType="FindBySubjectName" />
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
Weitere Informationen zum Verwenden von Zertifikaten in WCF finden Sie unter Verwenden von Zertifikaten.
Sicherheit
Achten Sie darauf, alle temporären Stammzertifizierungsstellen-Zertifikate aus den Ordnern Vertrauenswürdige Stammzertifizierungsstellen und Persönlich zu löschen, indem Sie mit der rechten Maustaste auf das Zertifikat klicken und anschließend auf Löschen klicken.
Siehe auch
Aufgaben
Vorgehensweise: Anzeigen von Zertifikaten mit dem MMC-Snap-In