Hallo Experten!
Ich - Anfänger im Bereich WCF - habe einen WCF-Selfhosting-Programm geschrieben, das einen Eigenbau-Service hosten soll, welcher auf einem WSHttpBinding mit dem ClientCredentialType "UserName" basiert. Der Service muss somit seine Identität mit einem Zertifikat nachweisen. Ein solches habe ich mit Hilfe des makecert-Tools wie folgt erstellt:
makecert -n "CN=X2016" -iv RS.pvk -ic RS.cer -pe -e 04/30/2016 -sky exchange X2016.cer
Die so erfolgreich erstellte Zertifikatdatei X2016.cer habe ich dann installiert. Sie wird in meinem Host auch gefunden, aber beim Öffnen des ServiceHost-Objekts erscheint der Fehler
Zitat: |
Das Zertifikat "CN=X2016" muss einen privaten Schlüssel aufweisen, der den Schlüsselaustausch unterstützt. Der Prozess muss über Zugriffsrechte für den privaten Schlüssel verfügen. |
Der Fehler erscheint allerdings nicht wenn ich makecert um die Parameter
-sk X2016 und
-ss My und (optional)
-sr currentuser
erweitere, was zum automatischen Ablegen des Zertifikats im Zertifikatspeicher führt und somit das Installieren des Zertifikats überflüssig macht. Diese Problematik ist scheinbar unabhängig vom Betriebssystem, ich habe es mit XP,Vista und 7 getestet.
Meine Frage ist: Ist es überhaupt möglich ein Test-Zertifikat mit makecert zunächst als Datei zu erstellen, dann zu installieren und dann zu verwenden? Und falls ja: Wie unterscheidet sich das "manuelle" Installieren eines solchen Zertifikats von der Installation innerhalb von makecert?
Ein Beschreibung eines solchen Problems habe ich irgendwie bisher nicht gefunden, die Beschreibungen von makecert beinhalten überall nur Hinweise, wie man damit Zertifikate erstellt. Ich wäre super dankbar, wenn ich hier eine Antwort erhalten könnte.