it-swarm.com.de

IIS7: Hostname kann vor Ort mit SSL-Zertifikat und Port 443 nicht festgelegt werden

Stellen Sie sich einen Win 2008 SP2-Computer mit IIS7 vor. Die Aufgabe besteht darin, ein Zertifikat und einen Hostnamen auf die einzige Site auf diesem Computer anzuwenden. Die Host-Header der Site müssen abc.123.example.com Sein.

Der erste Schritt war die erfolgreiche Installation von .pfx im Personal Store.

IIS7 findet das Zertifikat als verfügbar, erlaubt jedoch nicht die Eingabe eines Hostnamens. Das Textfeld Hostname ist IMMER deaktiviert/ausgegraut, noch bevor Sie mein Zertifikat auswählen. Ich habe sogar die Standardbindung für Port 80 gelöscht.

Site Bindings

Frage : Wie kann ich einen Hostnamen für diese Site festlegen? Geht es darum, dass dieses Zertifikat ein Wildcard-Zertifikat ist? Ich verstehe, dass die SSL-Anforderung auf dem Webserver eingeht und der Host-Header im Paket verschlüsselt ist. Warum sollte IIS6 dann die Angabe des Host-Headers zulassen, IIS7 jedoch nicht?

pdate : Das Zertifikat ist nicht Teil des Problems. Ich habe eine neue Site auf dem Computer erstellt. Wenn Sie die https-Bindung auswählen, ist das Textfeld Hostname deaktiviert.

48
p.campbell

Sie können es nicht über die Benutzeroberfläche tun, sondern müssen es über die Befehlszeile tun. Hier ist ein schöner Überblick über den Prozess:

http://www.sslshopper.com/article-ssl-Host-headers-in-iis-7.html

32
joeqwerty

Es funktioniert in der GUI ...

Stellen Sie einfach sicher, dass der 'Anzeigename' des Zertifikats, das Sie installieren, mit dem Multidomänennamen übereinstimmt, den Sie für das Zertifikat erstellt haben.

dh. * .companydomain.com

wenn Sie bei der Installation des Zertifikats in IIS 'Nice Friendly Name' für * .companydoman.com-Zertifikat eingeben, wird das Header-Feld für den Hostnamen ausgegraut.

Wenn Sie * .companyname.com als Anzeigenamen verwenden, sind Sie golden.

Boom.

45
Lindsay Rex

Die kurze Antwort lautet, dass an jede IP nur ein Zertifikat gebunden sein kann, sodass die Zertifikatbindung unabhängig davon angewendet wird, welcher Hostname an diese IP-Adresse gerichtet ist. Wenn Sie einen Hostnamen angeben können, bedeutet dies, dass Sie mehrere Hostnamen- und Zertifikatkombinationen auf derselben IP-Adresse und demselben Port haben können (wie bei Nicht-SSL-Einträgen). Dies ist jedoch nicht der Fall, sodass das Feld nicht verfügbar ist.

Die vollständigere Erklärung ist, dass SSL Ihren Datenverkehr verschlüsselt und ein Teil dieses Datenverkehrs die HTTP-Header sind, die vom Browser an den Server gesendet werden. Einer dieser Header wäre der "Host" -Header, mit dem IIS] bestimmt, welche Site mit der Anforderung geladen werden soll. Da das Zertifikat geladen werden muss, um die sichere Verbindung VOR den Anforderungsheadern herzustellen gesendet werden, IIS muss das Zertifikat nur basierend auf der IP-Adresse und der Portnummer auswählen, wobei der "Host" -Header als Faktor für die Bestimmung der zu ladenden Site im Dunkeln gelassen wird lass dich nicht eins eingeben.

Hier ist ein Artikel, der das Innenleben der SSL-Verbindung genauer beschreibt.

10
Justin Scott

Die SSLShopper-Antwort hat bei mir nicht funktioniert, da die Bindung ohne den Host-Header belassen wurde und Sie diese Bindung nicht entfernen konnten, ohne die Verbindung zum Zertifikat zu unterbrechen. Hier ist die Methode, mit der ich es zum Laufen gebracht habe:

Beachten Sie, dass bei dieser Antwort davon ausgegangen wird, dass Ihr Zertifikat bereits generiert, zum Zertifikatspeicher hinzugefügt und zu IIS hinzugefügt wurde. Es wird auch davon ausgegangen, dass Sie außer der SSL-Bindung keine weiteren Bindungen an Ihre Website wünschen.

Zuerst müssen wir einige Informationen sammeln. Wir benötigen den Hash, die Anwendungs-ID und den Hostnamen.

Schritte

  1. Öffnen Sie IIS, wählen Sie Ihren Server aus und doppelklicken Sie im unteren Bereich auf "Serverzertifikate". Beachten Sie die Adresse "Ausgestellt an". Dies ist unser Hostname. Speicher das.
  2. Wählen Sie Ihre Site aus
  3. Binden Sie Ihre Site mithilfe des http-Protokolls an Port 80
  4. Entfernen Sie alle anderen Bindungen
  5. Binden Sie Ihre Site mithilfe des https-Protokolls an Port 443
  6. Öffnen Sie eine Eingabeaufforderung

    netsh http show sslcert
    
  7. Speichern Sie den Zertifikat-Hash und die Anwendungs-ID

  8. Entfernen Sie die https-Bindung auf Ihrer Site
  9. Auf Befehl Eingabeaufforderung:

    netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put Host name here>']
    

Hinweis: Appcmd.exe befindet sich unter C:\Windows\System32\inetsrv. Möglicherweise müssen Sie sich in diesem Ordner befinden, damit dieser Befehl funktioniert.

  1. Entfernen Sie die http-Bindung von Ihrer Site

Die hier akzeptierte Antwort ist verwirrend und ich denke nicht, dass sie für die Frage richtig ist. Es sollte nicht die akzeptierte Antwort sein.

Das Problem

Sie haben ein Wildcard-SSL wie *.ipsum.com Und das Zertifikat ist installiert, aber Sie können in IIS keinen Hostnamen für die Site auswählen, wenn Sie versuchen, eine HTTPS-Bindung hinzuzufügen, weil Das Textfeld ist ausgegraut.

Die Lösung

Ihr Wildcard-SSL kann mit jeder Subdomain verwendet werden. Sie müssen lediglich stellen Sie sicher Sie starten den Anzeigenamen des Zertifikats mit *. Ich bevorzuge es, den gleichen Anzeigenamen wie die Platzhalterdomäne zu verwenden, z. *.ipsum.com, Aber Sie können es alles nennen, was mit dem Sternchen zu tun hat: *foo

Ich habe meinem Zertifikat den falschen Anzeigenamen gegeben, Hilfe!

Seit Windows 8 oder Server 2012 können Sie im Startmenü certlm.msc Eingeben, um Zertifikate für den lokalen Computer zu verwalten. In früheren Windows-Versionen müssen Sie etwas komplizierteres tun:

  1. Führen Sie mmc.exe Von Anfang an aus
  2. Gehen Sie zum Menü File und wählen Sie Add/Remove Snap-in... Oder drücken Sie (Ctrl-M)
  3. Markieren Sie das Snap-In Certificates und drücken Sie Add >. Wählen Sie dann Computer Account, Gefolgt von Local Computer In den folgenden Dialogen, und drücken Sie dann Finish gefolgt von OK, um das Snap-Ins-Fenster zu schließen

Erweitern Sie im Hauptfenster Certificates (Local Computer) dann Personal dann Certificates und Sie können mit der rechten Maustaste auf das Zertifikat klicken und Properties drücken, wo Sie aktualisieren können der freundliche Name.

Schließen und öffnen IIS Manager und Sie können dann Ihren Hostnamen festlegen.

4
Zac

Eigentlich können Sie einen Host-Header über die GUI hinzufügen, aber es hängt davon ab, wie das Zertifikat benannt ist ... Wenn ich meinem Platzhalterzertifikat den Anzeigenamen * .xyz.com gebe und dieses Zertifikat auswähle, bin ich es in der Lage, die GUI zu verwenden. Wenn der freundliche Name so etwas wie xyzwildcard ist und ich das wähle, dann grau er das Hostheader-Feld aus ...

Komisch komisch

2
tialen

Auf einigen Computern können Sie den Hostnamen nicht bearbeiten, wenn das Protokoll in https geändert wird oder nachdem ein SSL-Zertifikat hinzugefügt wurde. IIS kann manchmal mürrisch sein.

Dieser Windows-Befehl erstellt eine neue Bindung mit dem Protokoll "https" an Port "443", Hostname "subdomain.domain.com", Site-Name "Site-Name". Ändern Sie diese Werte (in Anführungszeichen), um Ihren Anforderungen zu entsprechen. Sie müssen dann die alte Bindung löschen, wenn sie Port 443 verwendet.

Run Windows Command Prompt as Administrator

C:> cd C:\Windows\System32\inetsrv

C:\Windows\System32\inetsrv> appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']

1
MacGyver

Der Hostname kann nur hinzugefügt werden, wenn der Friedlyname des ausgewählten Zertifikats dem Hostnamen * .xyz.com entspricht und Sie den zertifikatsfreundlichen Namen von mmc (Snap-in) in * .xyz.com umbenennen können.

0
Umer Khan