Hallo,
Ich möchte Teile meiner SOAP-Anfrage, welche an meinen WebService gesendet werden verschlüsseln und eine Signatur vornehmen. Hierzu habe ich mir die WSE 3.0 + Web Services Enhancements 3.0 Hands On Lab - Security runtergeladen und mit den enthaltenen Security-Beispielen rumprobiert. Das ganze funktioniert auch wunderbar. Was mir noch nicht so ganz klar wird (auch nach langem suchen in der MSDN) ist der Einsatz der Zertifikate. In den Samples, welche bei den WSE 3.0 dabei sind wird über eine Setup-Batch-Datei ein Server- (und das dazugehörige Client-)Testzertifikat erstellt. Dieses Zertifikat wird dann in den Samples verwendet. Was mache ich aber, wenn ich ein eigenes gültiges Zertifikat erstellen möchte? Muss ich das bei einer Zertifizierungsstelle im Netz machen? Wenn ja, kostet das etwas? Oder kann ich mir so ein Zertifikat selber erstellen? Wie installiere ich ein Zertifikat auf dem IIS bzw. auf meinem Service? Und wie kommt das Client-Zertifikat auf den Client Rechner?
Aus den Zeilen:
<serviceToken>
<x509 storeLocation="CurrentUser" storeName="AddressBook" findValue="CN=WSE2QuickStartServer" findType="FindBySubjectDistinguishedName" />
</serviceToken>
in der wse3policyCache.config des Clients komme ich zum Schluss, dass der Client ein Zertifikat lokal auf seinem Rechner haben muss, oder?
Danke!
Gruß, Andi!
Schau dir mal makercert.exe an.
Mit dem Certification Creation-Tool(Makecert.exe) kann man nur Zertifikate zu Testzwecken erstellen!
Richtige Zertifikate bekommt man von Zertifizierungsstellen, die kosten aber was.
Ein Beispiel ist Versing, GlobalSign, TrustSign, C&W (Das sind ein paar Zertifizierungsstellen die im Windows XP hinterlegt sind).
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
Hallo,
was für ein Zertifikat du benötigst kommt auf den Anwendungsfall an. Handelt es sich um einen öffentlichen Webservice solltest du in ein Zertifikat einer anerkannten Zertifizierungsstelle investieren. Handelt es sich um eine Unternehmensanwendung kannst du deinen eigene Zertifizierungsstelle (CA) einrichten, das geht über das Active Directory relativ einfach indem du den Dienst auf einem AD Controller installierst.
Du musst eben abwägen, bei Zertifikaten geht es ja immer nur um Vertrauen, also bei der Kommunikation von zwei Teilnehmern wird eben eine dritte vertrauenswürdige Person (Zertifizierungsstelle) hinzugezogen, welche garantiert das die Teilnehmer identifiziert sind. In einer internen Umgebung sollten daher alle dem AD Controller vertrauen können.
Grüße Sven
Hallo,
Erstmal Danke für die Antworten! Mir ist jetzt nur noch nicht so ganz klar wie ich ein Client-Zertifikat auf den Client bekomme bzw. das installiert bekomme und wie ich ein Server Zertifikat auf den Service installiere bzw. speichere. Ich bin z.B. bei Domainbox. Wie bekomme ich mein Serverzertifikat auf auf diesen Domainbox-Server installiert?
Danke.
Gruß, Andi!
Der IIS hat einen entsprechenden Wizard. Ansonsten über die Systemsteuerung (da wo du auch die IIS-Sicherheit kofigurieren kannst). Bei mir startet der Wizard auch, wenn man ein .cert-File doppelklickt.
OK, Danke! Und wie bekomme ich das Client-Zertifikat auf den Client? Sollte ich mir da einen kleinen Installer schreiben? Wenn ja, brauche ich Admin-Rechte, um das Client Zertfiikat zu installieren?
Gruß, Andi!
Bin ich überfragt. Habe bisher nur Server-Zertifizierung gemacht.
Zwar hat sich damit noch nicht meine Frage geklärt!
Aber trotzdem hier ein interessanter Artikel zu dem Thema:
http://www.microsoft.com/germany/msdn/library/security/ArbeitenmitZertifikateninNET20Teil1.mspx?mfr=true
Mach mal nen Doppelklick auf das Zertifikat, dann solltest du unten eine Schaltfläche mit "Zertifikat installieren" haben. Meinst du das, oder verstehe ich deine Frage falsch?
Also um den Hintergrund ein bisschen zu erklären:
Ich habe folgendes System geplant:
Auf meinem WebServer liegt mein WebService, welcher über eine Client-Applikation aufgerufen werden kann. Das Server-Zerifikat ist auf dem Server installiert und wird von dem WebService verwendet!
Die Client-Applikation sollte über Click-Once-Deployment auf dem Client installiert werden können. Ich will jetzt mit diese Installation das benötigte client-Zertifikat automatisch mitinstallieren. Geht das mit Click-Once-Deployment (also ohne Adminrechte, usw.)? Wenn ja wie mach ich das?
Ich hab noch nie etwas mit Click-Once zu tun gehabt, allerdings sollte es funktionieren, ich hab da mal ein bischen gesucht und folgendes gefunden.
http://www.theserverside.net/news/thread.tss?thread_id=34833
Hier steht dann folgendes:
Windows Forms applications and the necessary certificates can be deployed via the Click Once technology
Allerdings wie du das genau machst kann ich dir nicht sagen.
Grüße Sven
Hi,
Erstmal vielen Dank!! So eine Bestätgung hab ich nämlich auch verzweifelt gesucht! Das hilft mir schon mal weiter!!! Jetzt weiß ich, dass ich diesen Weg einschlagen kann. Jetzt gilt es nur noch das wie zu suchen 🙂! Danke nochmals!
Gruß, Andi!
Original von a_maier56
Mir ist jetzt nur noch nicht so ganz klar wie ich ein Client-Zertifikat auf den Client bekomme bzw. das installiert bekomme und wie ich ein Server Zertifikat auf den Service installiere bzw. speichere.
So:
Hi,
Danke für deine Screenshoterklährung 😉. Das habe ich auch hinbekommen. Ich würde diese Installation aber gerne über einen Installer (den ich selber schreibe) (bzw. wie schon erwähnt evtl. über ClickOnce Deployment) durchführen. In diesem Installer wird nämlich auch meine eigentliche Client-Applikation installiert. Hast du da schon irgendwelche Erfahrungen gemacht?
Danke.
Gruß, Andi!
Ne, habe sowas nie gemacht!
Aber wenn du es hinbekommst schreibe bitte hier!
Werde ich tun 🙂!