Laden...

[WCF] Verteilung von Zertifikaten an Clients

Erstellt von wdb.lizardking vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.525 Views
wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren
[WCF] Verteilung von Zertifikaten an Clients

Hallo,

ich möchte Zertifikate zur Authentifizierung einsetzen um Benutzer bei einer Serverapplikation zu erkennen. Diese Anwendung soll über das Internet funktionieren, wodurch leider die praktische Windows-Authentifizierung entfällt.

Ausgegangen bin ich von diesem Tutorial, welches wohl nur die Minimalanforderungen an eine zertifikatsbasierte Anwendung erfüllt, aber für den Einstieg sollte das genügen: UserNamePassword Validator

Um schon mal im vorhinein alle Probleme mit einer offiziellen Zertifizierungsstelle zu vermeiden wird beim Server der Wert


 <authentication certificateValidationMode="None" />

gesetzt.

Mein erstes Verständnisproblem tritt nun schon auf, bei der Frage was beim Client zu tun ist.
Für den Zertifikatsteil wird im MSDN-Artikel folgendes Batch-Skript gelistet:


echo ************
echo Server cert setup starting
echo %SERVER_NAME%
echo ************
echo making server cert
echo ************
makecert.exe -sr LocalMachine -ss MY -a sha1 -n CN=%SERVER_NAME% -sky exchange -pe

certmgr.exe -add -r LocalMachine -s My -c -n %SERVER_NAME% -r CurrentUser -s TrustedPeople

Der erste Befehl erzeugt augenscheinlich das Zertifikat selber und legt es in diesen ominösen PC-Speicher für Zertifikate.

Der zweite Befehl ist dagegen Voodoo. Laut Beschreibung

The following lines in the Setup.bat batch file copy the server certificate into the client trusted people store.

soll dies das Zertifikat am Client installieren. Aber der Client ist ein anderer PC, aber die Adresse des Clients wird nirgends angegeben.

Wenn ich den Server starte und mir mit dem svcutil.exe die WCF-Clientsettings generieren lasse, wird sogar ein Eintrag für das erstellte Zertifikat hinzugefügt:


<identity>
     <certificate encodedValue="AwAAAAEAA etc etc" />
    </identity>

Trotzdem kommt bei der ersten Verbindung Client->Server der in diesem Forum schon öfters erwähnte Fehler:

Fehler beim Aufbau der X509-Zertifikatkette (CN=pc_wo_server_laueft). Die Vertrauenskette des verwendeten Zertifikats kann nicht verifiziert werden. Ersetzen Sie das Zertifikat, oder ändern Sie den Zertifikatprüfungsmodus. Eine Zertifikatskette wurde zwar verarbeitet, endete jedoch mit einem Stammzertifikat, das beim Vertrauensanbieter nicht als vertrauenswürdig gilt.

Muß ich zuvor das Zertifikat beim Server exportieren und per Zertifikats-SnapIn irgendwie installieren? Davon steht jedenfalls im MSDN-Artikel nichts...

wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren

Ich versuche die Frage mal allgemeiner zu formulieren:

Ich habe auf dem Server nun eine temporäre Zertifikatsstelle und mit dieser ein gültiges Serverzertifikat erstellt. Dieses befindet sich auch im Zertifikatsspeicher des Servers.

Welche prinzipiellen Schritte sind nun auf dem Client auszuführen?