55 votes

IIS7 : impossible de définir le nom d'hôte sur le site avec un certificat SSL et le port 443

Considérons 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ôte du site doivent être abc.123.example.com

La première étape a consisté à installer le fichier .pfx dans le Personal Store, ce qui a été fait avec succès.

IIS7 trouve le certificat comme disponible, mais ne permet pas l'entrée 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.

Site Bindings

Question : comment puis-je définir un nom d'hôte pour ce site ? Ce certificat est-il un certificat de type "wildcard" ? Je comprends que la requête SSL arrive sur le serveur Web et que l'en-tête d'hôte du paquet est chiffré. Pourquoi alors IIS6 permet-il de spécifier 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 lorsque je choisis la liaison https, la zone de texte du nom d'hôte est désactivée.

53voto

Lindsay Rex Points 501

Il fonctionne dans l'interface graphique...

Assurez-vous simplement que le "friendly name" du certificat que vous installez est le même que le nom de multidomaine que vous avez créé pour le certificat.

ie. *.companydomain.com

si vous saisissez 'Nice friendly name' pour le certificat *.companydoman.com, lors de l'installation du certificat dans IIS, la case d'en-tête du nom d'hôte sera grisée.

Si vous utilisez *.companyname.com comme nom amical, vous êtes en or.

Boom.

34voto

joeqwerty Points 106914

Vous ne pouvez pas le faire depuis l'interface utilisateur, vous devez le faire depuis la ligne de commande. Voici une belle présentation du processus :

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

10voto

Justin Scott Points 8728

La réponse courte est que chaque IP ne peut avoir qu'un seul certificat lié à elle, donc la liaison du certificat va s'appliquer quel que soit le nom d'hôte dirigé vers cette adresse IP. La possibilité de spécifier un nom d'hôte impliquerait que vous pouvez avoir plusieurs combinaisons de noms d'hôte et de certificats sur la même adresse IP et le même port (comme vous pouvez le faire avec les entrées non-SSL), mais ce n'est pas le cas, donc le champ n'est pas disponible.

L'explication plus complète est que le protocole SSL crypte votre trafic, et qu'une partie de ce trafic est constituée des en-têtes HTTP envoyés par le navigateur au serveur. L'un de ces en-têtes est l'en-tête "Host" que IIS utilise pour déterminer le site à charger avec la requête. Étant donné que le certificat doit être chargé pour établir la connexion sécurisée AVANT que les en-têtes de la requête ne soient envoyés, IIS doit sélectionner le certificat en se basant uniquement sur l'adresse IP et le numéro de port, laissant l'en-tête "Host" en dehors de tout facteur de détermination du site à charger, et ne vous laisse donc pas en saisir un.

Voici un article qui présente le les rouages de la connexion SSL dans les moindres détails.

9voto

La réponse de SSLShopper n'a pas fonctionné pour moi car elle laissait la liaison sans l'en-tête de l'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 que cela fonctionne :

Veuillez noter que cette réponse suppose que votre certificat a déjà été généré, ajouté au magasin de certificats et ajouté à IIS. Elle suppose également que vous ne voulez pas d'autres liens pour votre site Web que le lien SSL.

Tout d'abord, nous devons rassembler quelques informations. Nous avons besoin du hash, de l'ID de l'application et du nom de l'hôte.

Étapes

  1. Ouvrez IIS, sélectionnez votre serveur et double-cliquez sur "Server Certificates" dans la section inférieure. Notez l'adresse "Issued To". C'est notre nom d'hôte. Sauvegardez-le.

  2. Sélectionnez votre site

  3. Liez votre site au port 80 en utilisant le protocole http.

  4. Supprimez toutes les autres fixations

  5. Liez votre site au port 443 en utilisant le protocole https.

  6. Ouvrez une invite de commande

    netsh http show sslcert
  7. Enregistrez le hachage du certificat et l'ID de l'application

  8. Supprimez la liaison https sur votre site

  9. A l'invite de commande :

    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>']

Note : Appcmd.exe peut être trouvé dans C:\Windows\System32\inetsrv. Il se peut que vous deviez être dans ce dossier pour que cette commande fonctionne.

  1. Supprimez la liaison http de votre site

5voto

Zac Points 151

La réponse acceptée ici est confuse et je ne pense pas qu'elle soit correcte pour la question. Ça ne devrait pas être la réponse acceptée.

Le problème

Vous avez un SSL joker 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 wildcard SSL peut être utilisé avec n'importe quel sous-domaine, vous devez simplement veillez à vous commencez le Friendly Name du certificat par * . Je préfère utiliser le même nom amical que le domaine générique, par ex. *.ipsum.com mais vous pouvez l'appeler tout ce qui commence par un astérisque : *foo

J'ai donné le mauvais nom d'ami à mon certificat, aidez-moi !

Depuis Windows 8 ou Server 2012, vous pouvez taper certlm.msc dans le menu de démarrage pour gérer les certificats de la machine locale. Sur les versions précédentes de Windows, vous devrez faire quelque chose de légèrement plus alambiqué :

  1. Exécuter mmc.exe depuis le début
  2. Ir a File et choisissez Add/Remove Snap-in... ou frappez (Ctrl-M)
  3. Mettez en évidence le Certificates s'enclencher et frapper Add > alors choisissez Computer Account suivi par Local Computer dans les boîtes de dialogue suivantes, puis appuyez sur Finish suivi par OK pour fermer la fenêtre Snap-ins

Dans la fenêtre principale, développez Certificates (Local Computer) puis Personal puis Certificates et vous pourrez faire un clic droit sur le certificat, cliquer sur Properties où vous pouvez mettre à jour le nom amical.

Fermez et ouvrez IIS Manager et vous pouvez alors définir votre nom d'hôte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X