Envisagez une machine Win 2008 SP2 avec IIS7. La tâche consiste à appliquer un certificat et un nom d'hôte au seul et unique site de cette machine. Les en-têtes d'hôtes du site doivent êtreabc.123.example.com
La première étape a été l’installation du fichier .pfx dans le magasin personnel, qui a abouti.
IIS7 trouve le certificat comme disponible, mais n'autorise pas la saisie d'un nom d'hôte. La zone de texte du nom d’hôte est TOUJOURS désactivée / grisée, même avant de sélectionner mon certificat. J'ai même supprimé la liaison par défaut du port 80.
Question: comment puis-je définir un nom d'hôte pour ce site? Est-ce une question de savoir si ce cert est un cert wildcard? Je comprends que la demande SSL arrive sur le serveur Web et que l’en-tête de l’hôte dans le paquet est crypté. Pourquoi alors IIS6 autoriserait-il la spécification de l'en-tête d'hôte, mais pas IIS7?
Mise à jour: Le certificat ne fait pas partie du problème. J'ai créé un nouveau site sur la machine et lors du choix de la liaison https, la zone de texte du nom d'hôte est désactivée.
la source
Sa fonctionne dans l'interface graphique ...
Assurez-vous simplement que le 'nom convivial' du cert que vous installez est le même que le nom de domaine multiple que vous avez créé pour le cert.
c'est à dire. * .societedomaine.com
si vous inscrivez 'Nice friendly name' pour * .companydoman.com cert, lors de l'installation du cert dans IIS, la zone d'en-tête du nom d'hôte sera grisée.
Si vous utilisez * .nomentreprise.com comme nom convivial, vous êtes en or.
Boom.
la source
La réponse courte est que chaque IP ne peut avoir qu'un seul certificat lié. La liaison de certificat va donc s'appliquer quel que soit le nom d'hôte dirigé vers cette adresse IP. Pouvoir spécifier un nom d'hôte impliquerait que vous puissiez avoir plusieurs combinaisons de nom d'hôte et de certificat sur la même adresse IP et le même port (comme vous le pouvez avec des entrées non SSL), mais ce n'est pas le cas, le champ n'est donc pas disponible.
L'explication la plus complète est que SSL chiffre votre trafic, et que les en-têtes HTTP envoyés par le navigateur au serveur constituent une partie de ce trafic. L'un de ces en-têtes est l'en-tête "Host" qu'IIS utilise pour déterminer le site à charger avec la demande. Comme le certificat doit être chargé pour établir la connexion sécurisée AVANT que les en-têtes de requête soient envoyés, IIS doit sélectionner le certificat uniquement en fonction de l'adresse IP et du numéro de port, sans tenir compte de l'en-tête "Host", ce qui permet de déterminer quel site charger, pour ne pas vous laisser entrer un.
Voici un article qui décrit en détail le fonctionnement interne de la connexion SSL .
la source
La réponse de SSLShopper ne fonctionnait pas pour moi car elle laissait la liaison sans en-tête d'hôte et vous ne pouviez pas supprimer cette liaison sans rompre la connexion au certificat. Voici la méthode que j'ai utilisée pour le faire fonctionner:
Notez que cette réponse suppose que votre certificat a déjà été généré, ajouté au magasin de certificats et à IIS. Cela suppose également que vous ne voulez aucune autre liaison avec votre site Web en dehors de celle SSL.
Premièrement, nous devons collecter des informations. Nous avons besoin du hachage, de l'ID d'application et du nom d'hôte.
Pas
Ouvrir une invite de commande
Enregistrer le hachage de certificat et l'ID d'application
A l'invite de commande:
Remarque: Appcmd.exe se trouve dans c: \ windows \ system32 \ insetsrv. Vous devrez peut-être être dans ce dossier pour que cette commande fonctionne.
la source
La réponse acceptée ici est déroutante et je ne pense pas que cela soit correct pour la question. Cela ne devrait pas être la réponse acceptée.
Le problème
Vous avez un SSL générique tel que
*.ipsum.com
et le certificat est installé, mais vous ne pouvez pas choisir un nom d'hôte pour le site dans IIS lorsque vous essayez d'ajouter une liaison HTTPS car la zone de texte est grisée.La solution
Votre SSL générique peut être utilisé avec n’importe quel sous-domaine, il vous suffit de vous assurer de bien démarrer le nom convivial du certificat
*
. Je préfère utiliser le même nom convivial que le domaine générique, par exemple,*.ipsum.com
mais vous pouvez l'appeler comme tout ce qui ressemble à l'astérisque:*foo
J'ai donné à mon certificat le mauvais nom, aidez-moi!
Depuis Windows 8 ou Server 2012, vous pouvez taper
certlm.msc
dans le menu Démarrer pour gérer les certificats pour la machine locale. Sur les versions précédentes de Windows, vous devrez faire quelque chose de légèrement plus compliqué:mmc.exe
du débutFile
menu et choisirAdd/Remove Snap-in...
ou frapper(Ctrl-M)
Certificates
composant logiciel enfichable, appuyez sur,Add >
puis choisissezComputer Account
suiviLocal Computer
dans les dialogues suivants, puis appuyez sur,Finish
puis surOK
pour fermer la fenêtre des composants logiciels enfichables.Dans la fenêtre principale, développez
Certificates (Local Computer)
puisPersonal
ensuiteCertificates
et vous serez en mesure de clic droit sur le certificat, appuyez surProperties
où vous pouvez mettre à jour le nom convivial.Fermez et ouvrez le Gestionnaire des services Internet et vous pourrez ensuite définir votre nom d’hôte.
la source
En fait, vous pouvez ajouter un en-tête d’hôte via l’interface graphique, mais cela dépend de la manière dont le certificat est nommé. capable d'utiliser le gui. si le nom convivial ressemble à xyzwildcard et que je le choisis, alors le champ hostheader est grisé ...
Bizarre bizarre
la source
Certaines machines ne vous permettent pas de modifier le nom d'hôte si le protocole est modifié en https ou après l'ajout d'un certificat SSL. IIS peut être parfois grincheux.
Cette commande Windows créera une nouvelle liaison avec le protocole "https", sur le port "443", nom d'hôte "sous-domaine.domaine.com", nom de site "nom de site". Modifiez ces valeurs (entre guillemets) pour répondre à vos exigences. Vous devrez ensuite supprimer l'ancienne liaison si elle utilise le port 443.
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']
la source
Le nom d'hôte ne peut être ajouté que lorsque le nom convivial du certificat sélectionné sera le même que le nom d'hôte * .xyz.com et que vous pouvez renommer le nom convivial du certificat en * .xyz.com à partir de mmc (composant logiciel enfichable).
la source
Je pense que cet article de la Base de connaissances éclaircira un peu la question. En résumé, les en-têtes d’hôte HTTP 1.1 ne sont pas pris en charge lorsque vous utilisez SSL.
Ce que vous souhaiterez probablement accomplir est d'utiliser la clé de métabase SecureBindings. Par exemple, cscript.exe adsutil.vbs défini / w3svc / websiteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
la source
Pourquoi MS retire-t-il cela de l'interface graphique me dépasse, car si vous avez une application ASP.NET qui utilise des fichiers de licence (licx), votre site ne fonctionnera pas car il apparaît sous la forme d'une adresse IP au lieu d'un nom de domaine . Ils doivent cesser d'ASSUMER à chaque nouvelle version de leur logiciel - les informaticiens n'ont pas besoin d'être surveillés par Microsoft! Décidément!
la source
J'ai créé un certificat auto-signé avec * .testcompany.com, j'ai sélectionné le nouveau créé (en commençant par *) dans la liste déroulante Modifier le certificat SSL de liaison, la zone de texte Nom de l'hôte est activée, j'ai créé le nom d'hôte sous la forme 'webapi.b2c .com ',
J'ai mis à jour le fichier hosts dans C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com
Maintenant, je peux naviguer sur le site en tant que ' https://webapp.b2c.com/ '
la source