- Mitglied seit
- 18. Aug 2009
- Beiträge
- 38
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo, ich habe ein Problem, an dem ich mir nun seit zwei Wochen die Zähne ausbeiße. Ausgangspunkt ist ein kleiner PHP SOAP Webservice und ein .NET Silverlight (4.0) Client. Service und Client sollen per verschlüsselter SSL Verbindung über https abgerufen bzw. angesprochen werden. Das Ganze funktioniert auf der lokalen XAMPP Entwicklungsumgebung hervorragend. Nun möchte ich die Anwendung auf der Diskstation über meine externe DynDns Adresse veröffentlichen, wobei diverse Probleme bei der Portierung auftreten.
Zunächst einmal eine kurze Erläuterung zur Vorgehensweise, wie in Visual Studio 2010 ein Webservice verwendet werden kann: Mittels "Dienstverweis hinzufügen" öffnet sich ein Wizzard, bei dem die URL des Webservices bzw. dessen WSDL Definition angegeben werden kann (beginnend mit https://, da ja die SSL Verschlüsselung genutzt werden soll). Nach Betätigen der Schaltfläche "Gehe zu" wird dann die Service-Definition abgerufen. Da es sich bei XAMPP ja nur um eine Testumgebung mit Testzertifikaten handelt, erfolgt bei der Abfrage der Definition zunächst eine Sicherheitsabfrage ("Visual Studio hat ein Problem mit dem Sicherheitszertifikat der Site festgestellt. […] Möchten Sie fortfahren?"). Bestätigt man diese Abfrage, so kann Visual Studio die Definition laden, auswerten und beim Abschließen des Wizzard automatisch die entsprechenden Proxy-Klassen zur asynchronen Abfrage des Webservices generieren.
Nun zu meinem eigentlichen Problem: gebe ich als URL die Adresse des Webservices auf der Diskstation an, so passiert erst einmal längere Zeit gar nichts (auch keine Sicherheitsabfrage wie auf dem XAMPP Server), bis die Abfrage in einen Timeout läuft. Das Verhalten ist das gleiche, egal ob ich den internen LAN Hostname der Diskstation oder die externe DynDns Adresse angebe. Die Abfrage ohne SSL über normales http funktioniert hingegen einwandfrei.
In einem Browser (IE, Firefox und Safari) kann ich auch über https auf den Service navigieren, wobei zunächst eine (je nach Browser unterschiedliche) Zertifikatsfehler-Seite angezeigt wird. Aber grundsätzlich ist die Seite über https ansprechbar.
Die einzigen Unterschiede, die mir aufgefallen sind, sind die Art der Zertifikatsfehler im Internetexplorer (von XAMPP: "Dieses Zertifizierungsstellen-Stammzertifikat ist nicht vertrauenswürdig. Installieren Sie das Zertifikat in den Speicher vertrauenswürdiger Stammzertifizierungsstellen…"; und von Diskstation: "Dieses Zertifikat kann nicht bis zu einer Zertifizierungsstelle verifiziert werden").
Weiterhin ist es etwas merkwürdig, dass das Aufrufen des Services beim Mitschneiden des verschlüsselten Datenverkehrs mittels Fiddler (Netzwerk Debugging mit HTTPS Decrypt durch man-in-the-middle) auf der Diskstation sogar dann im Browser nicht mehr funktioniert: unendlich lange nichts bis zum Timeout (in Fiddler: keine Antwort auf das HTTP CONNECT an 443). Der Datenverkehr mit XAMPP kann hingegen problemlos mitgeschnitten werden.
Meine Schlussfolgerung deshalb: es muss irgendetwas mit der SSL Konfiguration und/oder den Zertifikaten im Apache der DS zu tun haben.
Ich hatte auch schon einmal versucht, ein nach Wiki/Forum eigens erstelltes Zertifikat zu importieren. Nach dem Importieren des erstellten CAs zu den vertrauenswürdigen Stammzertifizierungsstellen im Client wurde zwar im IE kein Zertifikatsfehler mehr angezeigt, aber das eigentliche Problem blieb bestehen, so dass ich wieder auf die ursprünglichen Synology Zertifikate zurückgegangen bin.
Irgendetwas scheint in der Standard SSL Konfiguration der Diskstation nicht ganz korrekt zu sein. Die Frage ist nun, was ist im XAMPP Apache oder den dortigen Zerttifikaten anders, dass es dort funktioniert (und zwar auch mit den Standard XAMPP Testzertifikaten) und auf der Diskstation nicht?
Ich bin für jede Hilfe dankbar!
Gruß
kotellettenhorst
Zunächst einmal eine kurze Erläuterung zur Vorgehensweise, wie in Visual Studio 2010 ein Webservice verwendet werden kann: Mittels "Dienstverweis hinzufügen" öffnet sich ein Wizzard, bei dem die URL des Webservices bzw. dessen WSDL Definition angegeben werden kann (beginnend mit https://, da ja die SSL Verschlüsselung genutzt werden soll). Nach Betätigen der Schaltfläche "Gehe zu" wird dann die Service-Definition abgerufen. Da es sich bei XAMPP ja nur um eine Testumgebung mit Testzertifikaten handelt, erfolgt bei der Abfrage der Definition zunächst eine Sicherheitsabfrage ("Visual Studio hat ein Problem mit dem Sicherheitszertifikat der Site festgestellt. […] Möchten Sie fortfahren?"). Bestätigt man diese Abfrage, so kann Visual Studio die Definition laden, auswerten und beim Abschließen des Wizzard automatisch die entsprechenden Proxy-Klassen zur asynchronen Abfrage des Webservices generieren.
Nun zu meinem eigentlichen Problem: gebe ich als URL die Adresse des Webservices auf der Diskstation an, so passiert erst einmal längere Zeit gar nichts (auch keine Sicherheitsabfrage wie auf dem XAMPP Server), bis die Abfrage in einen Timeout läuft. Das Verhalten ist das gleiche, egal ob ich den internen LAN Hostname der Diskstation oder die externe DynDns Adresse angebe. Die Abfrage ohne SSL über normales http funktioniert hingegen einwandfrei.
In einem Browser (IE, Firefox und Safari) kann ich auch über https auf den Service navigieren, wobei zunächst eine (je nach Browser unterschiedliche) Zertifikatsfehler-Seite angezeigt wird. Aber grundsätzlich ist die Seite über https ansprechbar.
Die einzigen Unterschiede, die mir aufgefallen sind, sind die Art der Zertifikatsfehler im Internetexplorer (von XAMPP: "Dieses Zertifizierungsstellen-Stammzertifikat ist nicht vertrauenswürdig. Installieren Sie das Zertifikat in den Speicher vertrauenswürdiger Stammzertifizierungsstellen…"; und von Diskstation: "Dieses Zertifikat kann nicht bis zu einer Zertifizierungsstelle verifiziert werden").
Weiterhin ist es etwas merkwürdig, dass das Aufrufen des Services beim Mitschneiden des verschlüsselten Datenverkehrs mittels Fiddler (Netzwerk Debugging mit HTTPS Decrypt durch man-in-the-middle) auf der Diskstation sogar dann im Browser nicht mehr funktioniert: unendlich lange nichts bis zum Timeout (in Fiddler: keine Antwort auf das HTTP CONNECT an 443). Der Datenverkehr mit XAMPP kann hingegen problemlos mitgeschnitten werden.
Meine Schlussfolgerung deshalb: es muss irgendetwas mit der SSL Konfiguration und/oder den Zertifikaten im Apache der DS zu tun haben.
Ich hatte auch schon einmal versucht, ein nach Wiki/Forum eigens erstelltes Zertifikat zu importieren. Nach dem Importieren des erstellten CAs zu den vertrauenswürdigen Stammzertifizierungsstellen im Client wurde zwar im IE kein Zertifikatsfehler mehr angezeigt, aber das eigentliche Problem blieb bestehen, so dass ich wieder auf die ursprünglichen Synology Zertifikate zurückgegangen bin.
Irgendetwas scheint in der Standard SSL Konfiguration der Diskstation nicht ganz korrekt zu sein. Die Frage ist nun, was ist im XAMPP Apache oder den dortigen Zerttifikaten anders, dass es dort funktioniert (und zwar auch mit den Standard XAMPP Testzertifikaten) und auf der Diskstation nicht?
Ich bin für jede Hilfe dankbar!
Gruß
kotellettenhorst