Sichere Kommunikation zwischen Browser und Webserver via SSL ist heutzutage nichts Ungewöhnliches mehr.
Doch wie nutze bzw. erneuere ich SSL Zertifikate in einer Windows Azure Web Rolle?
Wie erzwinge ich eine Kommunikation über HTTPS?
SSL Zertifikat installieren
Da in den wenigsten Fällen das SSL Zertifikat auf dem lokalen Rechner erzeugt wird, möchte ich mich zuerst einem wichtigen Punkt beim Import des Zertifikats widmen.
Bei einem schlichten Doppelklick auf der Zertifikat, wird dieses für den aktuellen Benutzer importiert.
Für die Verwendung in Visual Studio macht dies allerdings oft Probleme.
Deshalb sollte diese Computerweit zur Verfügung stehen.
Dazu startet man am Besten die MMC Konsole und fügt das Snap-In für Zertifikate hinzu.
Anschließend wählt man den Zertifikatsbereich für den lokalen Computer aus:
Hier muss das Zertifikat in den Bereich „Personal“ importiert werden:
Web Rolle konfigurieren
Nachdem das SSL Zertifikat auf dem lokalen Rechner zur Verfügung steht, kann diese in den Web Rollen Eigenschaften des Cloud Projektes (Unterpunkt Certificates) hinzugefügt werden.
Dazu klickt man auf Add Certificate …
… und vergibt anschließend, in der hinzugefügten Zeile, einen Namen für die interne Verwendung.
Danach kann, über den Button am Ende Zeile, der Dialog für die Zertifikatauswahl geöffnet werden:
Nur noch das gewünschte Zertifikat auswählen und mit OK bestätigen:
Nachdem ein Zertifikat ausgewählt wurde, wird der Thumbprint angezeigt:
Um das Zertifikat im IIS und Loadbalancer nutzen zu können, muss ein neuer Endpunkt (im Bereich Endpoints) angelegt werden:
Nach der Namensvergabe, muss hier das Protokoll auf HTTPS geändert, sowie das Zertifikat ausgewählt werden:
Cloud Service vorbereiten
Für die nächsten Schritte muss man sich zuerst am Windows Azure Management Portal anmelden und im entsprechenden Cloud Service in den Certificates-Bereich wechseln:
Dort angelangt, läd man das Zertifikat hoch:
Von jetzt an kann das neue Zertifikat im Cloud Service genutzt werden.
Sobald also die Web Rolle veröffentlicht wurde, ist ein Wechsel zu HTTPS möglich:
HTTPS erzwingen
Um HTTPS zu erzwingen, kann folgendes Konfigurationsfragment der web.config hinzugefügt werden:
<system.webServer> <rewrite> <rules> <rule name="HTTPS erzwingen"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{SERVER_NAME}/{R:1}" /> </rule> </rules> </rewrite> </system.webServer>
SSL Zertifikat erneuern
Zur Erneuerung eines abgelaufenen Zertifikates, können zur Laufzeit folgende 3 Schritte ausgeführt werden:
- Hochladen des neuen Zertifikats im Certificates-Bereich des Cloud Service
- Thumbprint des neuen Zertifikats im Configure-Bereich eintragen
- Änderungen Speichern.
Daraufhin wird jede Instanz der Web Rolle mit den neuen Zertifikat aktualisiert.
Windows Azure Web Sites
Für die Windows Azure Web Sites ist bereits ein Zertifikat für *.azurewebsites.net ausgestellt und kann ohne weiteres zutun genutzt werden:
Wer dennoch sein eigenes Zertifikat nutzen möchte, muss auf dem Standard-Modus wechseln und kann dann ein eigenes Zertifikat hinzufügen.
Weitere Details zu diesem Thema findet man unter diesem Link
Verwendete Bildquellen:
© Gerd Altmann / PIXELIO