Betrachten Sie einen Windows 2008 SP2-Computer mit IIS7. Die Aufgabe besteht darin, ein Zertifikat und einen Hostnamen auf die einzige Site auf diesem Computer anzuwenden. Die Host-Header der Site müssen seinabc.123.example.com
Der erste Schritt war die erfolgreiche Installation der .pfx-Datei im Personal Store.
IIS7 findet das Zertifikat als verfügbar, lässt jedoch die Eingabe eines Hostnamens nicht zu. Das Textfeld für den Hostnamen ist IMMER deaktiviert / ausgegraut, noch bevor ich mein Zertifikat auswähle. Ich habe sogar die Standard-Port-80-Bindung gelöscht.
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-Anfrage auf dem Webserver eingeht und der Host-Header im Paket verschlüsselt ist. Warum sollte IIS6 dann die Angabe des Host-Headers zulassen, IIS7 nicht?
Update: Das Zertifikat ist nicht Teil des Problems. Ich habe eine neue Site auf dem Computer erstellt und bei Auswahl der https-Bindung ist das Textfeld für den Hostnamen deaktiviert.
quelle
Es funktioniert in GUI ...
Stellen Sie einfach sicher, dass der angezeigte Name des zu installierenden Zertifikats mit dem Multidomänennamen übereinstimmt, den Sie für das Zertifikat festgelegt haben.
dh * .companydomain.com
Wenn Sie bei der Installation des Zertifikats in IIS für * .companydoman.com cert den Eintrag 'Nice friendly name' eingeben, wird das Feld für den Hostnamen-Header grau angezeigt.
Wenn Sie * .companyname.com als Anzeigenamen verwenden, sind Sie golden.
Boom.
quelle
Die kurze Antwort lautet, dass an jede IP nur ein Zertifikat gebunden werden 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 Kombinationen aus Hostnamen und Zertifikat 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 umfassendere Erklärung ist, dass SSL Ihren Datenverkehr verschlüsselt und ein Teil dieses Datenverkehrs die vom Browser an den Server gesendeten HTTP-Header sind. Einer dieser Header ist 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 herzustellen, bevor die Anforderungsheader gesendet werden, muss IIS das Zertifikat nur auf der Grundlage der IP-Adresse und der Portnummer auswählen, wobei der "Host" -Header als Bestimmungsfaktor im Dunkeln gelassen wird welche Site geladen werden soll, damit Sie keine eingeben können.
In diesem Artikel wird die Funktionsweise der SSL-Verbindung detaillierter beschrieben.
quelle
Die SSLShopper-Antwort hat bei mir nicht funktioniert, da die Bindung ohne den Hostheader 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 in dieser Antwort davon ausgegangen wird, dass Ihr Zertifikat bereits generiert, dem Zertifikatspeicher hinzugefügt und IIS hinzugefügt wurde. Es wird auch davon ausgegangen, dass Sie außer SSL keine weiteren Bindungen für Ihre Website wünschen.
Zuerst müssen wir einige Informationen sammeln. Wir benötigen den Hash, die Anwendungs-ID und den Hostnamen.
Schritte
Öffnen Sie eine Eingabeaufforderung
Speichern Sie den Zertifikatshash und die Anwendungs-ID
An der Eingabeaufforderung:
Hinweis: Appcmd.exe befindet sich unter c: \ windows \ system32 \ insetsrv. Möglicherweise müssen Sie sich in diesem Ordner befinden, damit dieser Befehl ausgeführt werden kann.
quelle
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 keinen Hostnamen für die Site in IIS wählen, wenn Sie versuchen, eine HTTPS-Bindung hinzuzufügen, da das Textfeld ausgegraut ist.Die Lösung
Ihr Wildcard-SSL kann mit jeder Subdomain verwendet werden. Sie müssen nur sicherstellen, dass Sie den Anzeigenamen des Zertifikats mit starten
*
. Ich bevorzuge es, den gleichen Anzeigenamen wie die Wildcard-Domain zu verwenden,*.ipsum.com
aber Sie können ihn als alles bezeichnen, was mit dem Sternchen verbunden ist:*foo
Ich habe meinem Zertifikat den falschen Anzeigenamen gegeben, helfen Sie!
Seit Windows 8 oder Server 2012 können Sie
certlm.msc
im Startmenü Zertifikate für den lokalen Computer verwalten. In früheren Versionen von Windows müssen Sie etwas komplizierteres tun:mmc.exe
von Anfang anFile
Menü und wähleAdd/Remove Snap-in...
oder drücke(Ctrl-M)
Certificates
Snap-In ein und drücken SieAdd >
dann wählen ,Computer Account
gefolgt vonLocal Computer
in den nachfolgenden Dialogen dann drücken ,Finish
gefolgt vonOK
den Snap-Ins Fenster zu schließenIm Hauptfenster, erweitern Sie
Certificates (Local Computer)
dannPersonal
dannCertificates
und Sie werden in der Lage sein , um das Zertifikat der rechten Maustaste, treffen ,Properties
wo Sie den angezeigten Namen aktualisieren.Wenn Sie den IIS-Manager schließen und öffnen , können Sie Ihren Hostnamen festlegen.
quelle
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 Wildcard-Zertifikat den Anzeigenamen * .xyz.com gebe und dieses Zertifikat auswähle, bin ich es in der Lage, die GUI zu verwenden. Wenn der angezeigte Name so etwas wie xyzwildcard ist und ich das wähle, wird das Hostheader-Feld ausgegraut ...
Komisch komisch
quelle
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) entsprechend Ihren Anforderungen. Sie müssen dann die alte Bindung löschen, wenn sie Port 443 verwendet.
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']
quelle
Der Hostname kann nur hinzugefügt werden, wenn der Friedlyname des ausgewählten Zertifikats dem Hostnamen * .xyz.com entspricht. Sie können den zertifikatsfreundlichen Namen von mmc (Snap-In) in * .xyz.com umbenennen.
quelle
Ich denke, dieser KB-Artikel wird etwas Licht ins Dunkel bringen. Kurz gesagt, HTTP 1.1-Hostheader werden bei Verwendung von SSL nicht unterstützt.
Was Sie wahrscheinlich erreichen möchten, ist die Verwendung des SecureBindings-Metabasisschlüssels. ZB cscript.exe adsutil.vbs set / w3svc / websiteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
quelle
Warum MS dies aus der GUI herausnimmt, ist mir ein Rätsel. Wenn Sie eine ASP.NET-Anwendung haben, die Lizenzdateien (licx) verwendet, funktioniert Ihre Site nicht, da sie als IP-Adresse anstelle eines Domänennamens angezeigt wird . Sie müssen aufhören, bei jeder neuen Version ihrer Software davon auszugehen - IT-Mitarbeiter müssen nicht von Microsoft babysittet werden! Meine Güte!
quelle
Ich habe mit * .testcompany.com ein selbstsigniertes Zertifikat erstellt. Ich habe das neu erstellte (beginnend mit *) in der Dropdown-Liste Bindungs-SSL-Zertifikat bearbeiten ausgewählt. Ich habe das Textfeld Hostname aktiviert und den Hostnamen als 'webapi.b2c' erstellt .com ',
Ich habe die Hosts-Datei unter C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com aktualisiert
Jetzt kann ich die Site als " https://webapp.b2c.com/ " durchsuchen.
quelle