Je voudrais héberger un site Web qui devrait écouter des sous-domaines (par exemple, sub.domain.com) ainsi que plusieurs sites Web qui vivent juste sous un domaine de deuxième niveau (par exemple, domain2.com, domain3.com) avec IIS et SSL.
Pour le site Web avec les sous-domaines, j'ai un certificat générique (* .domain.com) et j'ai également des certificats spécifiquement pour les autres sites (domain2.com et domain3.com).
Une telle configuration peut-elle être hébergée sur le même IIS (si cela est important, dans un rôle Web Azure Cloud Service)?
Le problème est exactement ce que titobf a expliqué ici : pour cela, nous aurions besoin de liaisons en utilisant SNI, avec l'hôte spécifié pour domain2 / 3.com, puis un site Web fourre-tout avec * host pour * .domain.com. Mais dans la pratique, peu importe la façon dont les liaisons sont configurées si le site Web fourre-tout est activé, il recevra également toutes les demandes adressées à domain2 / 3.com (bien qu'il ne soit supposé correspondre qu'en dernier recours).
Toute aide serait appréciée.
Pas encore résolu
Malheureusement, je n'ai pas été en mesure de résoudre ce problème: il semble être résolu uniquement de manière extrêmement compliquée, comme la création d'un logiciel qui se situe entre IIS et Internet (donc essentiellement un pare-feu) et modifie les demandes entrantes (avant la prise de contact SSL! ) pour autoriser le scénario. Je suis assez confiant que ce n'est pas possible avec IIS, quoi qu'il arrive, même pas à partir d'un module natif.
Je dois clarifier: nous utilisons Azure Cloud Services, nous avons donc une contrainte supplémentaire de ne pas pouvoir utiliser plusieurs adresses IP (voir: http://feedback.azure.com/forums/169386-cloud-services-web-and -worker-role / suggestions / 1259311-multiple-ssl-and-domains-to-one-app ). Si vous pouvez pointer plusieurs adresses IP vers votre serveur, vous n'avez pas ce problème car vous pouvez également créer des liaisons pour les adresses IP, et celles-ci fonctionneront ensemble avec des liaisons génériques. Plus précisément, vous avez besoin d'une IP pour le site générique (mais comme vous avez maintenant une IP distincte, vous n'aurez plus à configurer une liaison de nom d'hôte générique) et une autre IP pour tous les autres non génériques.
En fait, notre solution de contournement consistait à utiliser un port SSL non standard, 8443. La liaison SNI est donc réellement liée à ce port, elle fonctionne donc avec les autres liaisons. Pas sympa, mais une solution de contournement acceptable pour nous jusqu'à ce que vous puissiez utiliser plusieurs IP pour les rôles Web.
Les fixations non fonctionnelles maintenant
La première liaison https est SNI avec un certificat simple, la seconde n'est pas SNI, avec un certificat générique.
Le site http fonctionne, ainsi que le site SNI https, mais celui avec la liaison générique donne une «erreur HTTP 503. Le service n'est pas disponible». (sans aucune autre information, pas de suivi de la demande d'échec ou d'entrée du journal des événements).
Enfin le faire fonctionner fondamentalement
L'activation du journal de suivi ETW comme Tobias décrit a montré que l'erreur racine était la suivante:
Demande (ID de demande 0xF500000080000008) rejetée pour la raison: UrlGroupLookupFailed.
Pour autant que je sache, cela signifie que http.sys n'est pas en mesure d'acheminer la demande vers un point de terminaison disponible.
La vérification des points d'extrémité enregistrés avec a netsh http show urlacl
montré qu'il y avait effectivement quelque chose d'enregistré pour le port 443:
Reserved URL : https://IP:443/
User: NT AUTHORITY\NETWORK SERVICE
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;NS)
La suppression de ceci a netsh http delete urlacl url=https://IP:443/
finalement activé ma liaison SSL.
logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets
2) faire la demande 503 3) arrêter le journal de suivi. exécuter: logman stop httptrace -ets
4) écrire le journal de suivi dans le fichier. run: tracerpt.exe httptrace.etl -of XML -o httptrace.xml
5) vérifiez la raison de 503 dans le fichier xml et postez-le ici.