Exportieren (0) Drucken
Alle erweitern

Konfigurieren eines SSL-Zertifikats für einen HTTPS-Endpunkt

Letzte Aktualisierung: Februar 2014

Führen Sie die folgenden Schritte aus, um einer Rolle im Windows Azure-Dienst einen HTTPS-Endpunkt hinzuzufügen und einem SSL-Zertifikat zuzuordnen:

  1. Rufen Sie ein SSL-Zertifikat von einer Zertifizierungsstelle ab. Weitere Informationen finden Sie unter Abrufen eines SSL-Zertifikats.

  2. Fügen Sie das Zertifikat dem Zertifikatspeicher für den gehosteten Dienst hinzu. Weitere Informationen finden Sie im Abschnitt Hochladen des Zertifikats in Windows Azure.

  3. Fügen Sie den Fingerabdruck des Zertifikats der Dienstkonfigurationsdatei hinzu. Weitere Informationen finden Sie im Abschnitt Hinzufügen des Zertifikatfingerabdrucks zur Dienstkonfigurationsdatei.

  4. Aktualisieren Sie die Dienstdefinitionsdatei, um das Zertifikat für den gehosteten Dienst zu identifizieren. Weitere Informationen finden Sie im Abschnitt Hinzufügen des Zertifikats zur Dienstdefinitionsdatei.

  5. Konfigurieren Sie den HTTPS-Endpunkt in der Dienstdefinitionsdatei, und ordnen Sie ihn dem Zertifikat zu. Weitere Informationen finden Sie im Abschnitt Konfigurieren des HTTPS-Endpunkts.

  6. Richten Sie einen CNAME-Eintrag für den Domänennamen ein, für den das Zertifikat ausgestellt wird, um den Datenverkehr an den Dienst weiterzuleiten. Weitere Informationen zum Konfigurieren von CNAME finden Sie unter Konfigurieren eines benutzerdefinierten Domänennamens für einen Windows Azure-Cloud-Dienst.

Wenn Sie den HTTPS-Endpunkt in der Entwicklungsumgebung testen, erfolgt die gesamte Authentifizierung mithilfe eines selbstsignierten Zertifikats, das für 127.0.0.1 bereitgestellt wurde. Weitere Informationen finden Sie im Abschnitt Testen eines HTTPS-Endpunkts im Serveremulator weiter unten in diesem Thema.

Ein SSL-Zertifikat, mit dem ein HTTPS-Endpunkt in Windows Azure gesichert wird, muss die folgenden Features umfassen:

  • Das Zertifikat muss einen privaten Schlüssel enthalten.

  • Der Zweck des Zertifikats sollte die Serverauthentifizierung sein.

  • Der Antragstellername für das Zertifikat muss mit dem Domänennamen übereinstimmen, der für den Zugriff auf den Dienst verwendet wird.

  • Erfordert eine minimale Kryptografieschlüsselgröße von 2048 Bits.

noteHinweis
Wenn Sie die Windows Azure Tools für Microsoft Visual Studio verwenden, um den Dienst zu entwickeln, können Sie einen HTTPS-Endpunkt mithilfe der Eigenschaftenseiten für Ihre Rolle konfigurieren.

Windows Azure stellt einen sicheren Zertifikatspeicher bereit, in dem Sie Zertifikate für den gehosteten Dienst verwalten können. Wenn Sie dem Dienst ein Zertifikat zuordnen und das Zertifikat in den Speicher hochladen, wird das Zertifikat von Windows Azure automatisch auf den virtuellen Computern bereitgestellt, auf denen Ihre Rolleninstanzen ausgeführt werden. Weitere Informationen zum Zertifikatspeicher finden Sie unter Verwalten von Zertifikaten.

Führen Sie die Schritte unter Hinzufügen eines neues Zertifikats zum Zertifikatspeicher aus, um das Zertifikat in den Zertifikatspeicher hochzuladen.

Der Zertifikatfingerabdruck in der Dienstkonfigurationsdatei kombiniert den logischen Namen des Zertifikats, den Sie in der Dienstdefinitionsdatei bereitgestellt haben, mit dem Zertifikat im Speicher. Durch die Verwaltung des Fingerabdrucks in der Dienstkonfigurationsdatei werden die Zertifikatdaten vom Dienstpaket getrennt. So können Sie oder der Leiter der IT-Abteilung das Zertifikat aktualisieren, ohne den Dienst erneut bereitstellen zu müssen.

Sie können das Zertifikat und den dazugehörigen Fingerabdruck in der Dienstkonfigurationsdatei auflisten, indem Sie die Konfigurationsdatei ändern und die Certificates-Auflistung zum Eintrag für Ihre Rolle hinzufügen. Fügen Sie ein Certificate-Element der Certificates-Auflistung hinzu, und geben Sie den logischen Namen des Zertifikats an. Verwenden Sie den gleichen Namen, den Sie in der Dienstdefinitionsdatei angegeben haben. Geben Sie schließlich den Fingerabdruck des Zertifikats und den Algorithmus an, der zum Generieren des Fingerabdrucks verwendet wurde, wie im folgenden Beispiel gezeigt:


<ServiceConfiguration serviceName="MyService">
  <Role name=" MyWorkerRole">
    <Instances count="5" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MySSLCert" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Weitere Informationen zum Abrufen des Fingerabdrucks eines Zertifikats finden Sie im Abschnitt "Erstellen eines X.509 v3-Zertifikats" unter Erstellen eines Dienstzertifikats für Windows Azure.

Um einem HTTPS-Endpunkt ein Zertifikat zuzuordnen, müssen Sie einen logischen Namen für das Zertifikat angeben, anhand dem es im Dienst identifiziert wird. Außerdem muss der Speicherort des Zertifikats auf dem virtuellen Computer angegeben werden, auf dem eine Instanz der Rolle ausgeführt wird.

Fügen Sie in der Dienstdefinitionsdatei das Certificates-Element zur Rollendefinition hinzu. Innerhalb der Certificates-Auflistung können Sie einen Eintrag für das Zertifikat hinzufügen, wie im folgenden Beispiel gezeigt:


  <WorkerRole name="MyWorkerRole" vmsize="Small">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      . . .
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

In diesem Beispiel wird der Speicherort auf LocalMachine und der Speichername auf My festgelegt. Diese beiden Attribute geben an, wo das Zertifikat (hier identifiziert als MySSLCert) auf der VM installiert ist.

Sie können für das name-Attribut des Zertifikats einen beliebigen Namen auswählen. Dieser Name wird nur verwendet, um auf das Zertifikat in der Definition für den HTTPS-Endpunkt und in der Dienstkonfigurationsdatei zu verweisen.

Sie können der Rolle einen HTTPS-Endpunkt hinzufügen, indem Sie die Dienstdefinitionsdatei bearbeiten und der Endpoints-Auflistung für die Rolle ein InputEndpoint-Element hinzufügen. Geben Sie einen Namen für den Endpunkt, das Protokoll (HTTPS) und den Port an. Geben Sie dann den logischen Namen für das Zertifikat an, das Sie in der Certificates-Auflistung der Rolle definiert haben.

Im folgenden Verfahren wird gezeigt, wie ein HTTP-Eingabeendpunkt für eine Webrolle hinzugefügt wird, der an Port 80 lauscht. Außerdem wird ein HTTPS-Endpunkt definiert, der an Port 443 lauscht:

  1. Öffnen Sie die Datei ServiceDefinition.csdef für den Dienst im Text-Editor.

  2. Fügen Sie das Certificates-Auflistungselement hinzu, das ein Certificate-Element enthält, dem Rollenelement der Rolle hinzu, die mithilfe von SSL gesichert wird. Legen Sie das name-Attribut auf den Namen des Zertifikats fest. Legen Sie die Attribute storeLocation und storeName fest, um den Speicherort des Zertifikats auf dem virtuellen Computer anzugeben.

        
    <Certificates>
       <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    
    
  3. Fügen Sie das Endpoints-Auflistungselement hinzu, das die InputEndpoint-Elemente enthält, dem Rollenelement der Rolle hinzu, die mithilfe von SSL gesichert wird. Legen Sie das certificate-Attribut des HttpsIn-Eingabeendpunkts so fest, dass es mit dem Zertifikatnamen übereinstimmt, der in der Certificates-Auflistung angegeben ist.

       
    <Endpoints>
       <InputEndpoint name="HttpIn" protocol="http" port="80" />
       <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    
    
  4. Speichern Sie die Datei.

Die abgeschlossene Dienstdefinition ähnelt dem folgenden Beispiel.


<ServiceDefinition name="MyService">
  <WorkerRole name="MyWorkerRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Der Serveremulator nutzt standardmäßig ein selbstsigniertes Zertifikat für die IP-Adresse 127.0.0.1, die localhost entspricht. Wenn es beim Installieren oder Konfigurieren des Zertifikats, das Sie in den vorherigen Schritten konfiguriert haben, ein Problem gab, wird der Serveremulator automatisch mit dem selbstsignierten Zertifikat und nicht mit dem benutzerdefinierten Zertifikat authentifiziert. Wenn in Ihrer Bereitstellung immer das SSL-Zertifikat für 127.0.0.1 verwendet wird, obwohl Sie ein anderes Zertifikat definiert haben, stellen Sie sicher, dass Ihr benutzerdefiniertes Zertifikat keine Fehler aufweist und ordnungsgemäß installiert ist.

Standardmäßig wird dem selbstsignierten Zertifikat, das vom Serveremulator verwendet wird, nicht von der Stammzertifizierungsstelle vertraut. Wenn Sie zu einer HTTPS-Website navigieren, erhalten Sie einen Zertifikatfehler, sofern Sie das Zertifikat nicht dem Speicher der vertrauenswürdigen Stammzertifizierungsstellen auf dem lokalen Computer hinzufügen. Sie können den Fehler entweder ignorieren oder das Zertifikat der vertrauenswürdigen Stammzertifizierungsstelle hinzufügen, damit er nicht mehr auftritt.

Wenn Sie den gehosteten Dienst im Windows Azure-Serveremulator ausführen, ist der SSL-Port ggf. auf eine andere Portnummer als 443 festgelegt (meistens 444 oder 445). Wenn ein angegebener Port, z. B. 443, nicht verfügbar ist, erhöht der Serveremulator für einen HTTPS-Endpunkt die Portnummer, bis eine freie Portnummer gefunden wird.

Um den Port 443 zu verwenden, müssen Sie die Anwendung oder die Website herunterfahren, die den Port verwendet, und den Serveremulator neu starten, um die Liste der verfügbaren Ports neu zu laden. Durch Herunterfahren und Neustarten des Emulators wird die Liste der verfügbaren Ports nicht neu geladen.

Um festzustellen, ob der Port 443 verwendet wird, können Sie eine Eingabeaufforderung öffnen und den NETSTAT-Befehl ausführen. Weitere Informationen zum Befehl NETSTAT finden Sie unter Netstat.

Wenn Sie kein Zertifikat haben, das von einer Zertifizierungsstelle ausgestellt wurde, können Sie ein selbstsigniertes Zertifikat für die Verwendung mit dem Windows Azure-Dienst generieren.

noteHinweis
Dieses selbstsignierte Zertifikat wird getrennt von dem Zertifikat verwaltet, das in der Entwicklungsumgebung verwendet wird. Dieses Zertifikat wird für Sie bereitgestellt und nur für die Authentifizierung in der Entwicklungsumgebung verwendet.

Wenn Sie zu einem HTTPS-Endpunkt navigieren, dem in Windows Azure ein selbstsigniertes Zertifikat zugeordnet ist, wird im Browser ein Zertifikatfehler angezeigt. Sie können das Problem vermeiden, indem Sie ein Zertifikat verwenden, das von einer Zertifizierungsstelle signiert wurde. In der Zwischenzeit können Sie den Fehler ignorieren.

Siehe auch

Anzeigen:
© 2015 Microsoft