Me gustaría alojar un sitio web que debería escuchar subdominios (por ejemplo, sub.domain.com) junto con varios sitios web que viven justo debajo de un dominio de segundo nivel (por ejemplo, domain2.com, domain3.com) con IIS y SSL.
Para el sitio web con los subdominios, tengo un certificado comodín (* .dominio.com) y también tengo certificados específicamente para los otros sitios (dominio2.com y dominio3.com).
¿Se puede alojar dicha configuración en el mismo IIS (si eso es importante, en un rol web de Azure Cloud Service)?
El problema es exactamente lo que titobf explicó aquí : teóricamente para esto necesitaríamos enlaces usando SNI, con el host especificado para domain2 / 3.com y luego un sitio web general con * host para * .domain.com. Pero, en la práctica, no importa cómo se configuren los enlaces si el sitio web general está en funcionamiento, también recibirá todas las solicitudes a domain2 / 3.com (aunque supuestamente solo coincide como último recurso).
Cualquier ayuda sería apreciada.
Aún sin resolver
Desafortunadamente, no pude resolver esto: parece resolverse solo de maneras extremadamente complicadas, como crear un software que se encuentra entre IIS e Internet (básicamente un firewall) y modifica las solicitudes entrantes (¡antes de que se realice el protocolo de enlace SSL! ) para permitir el escenario. Estoy bastante seguro de que esto no es posible con IIS, pase lo que pase, ni siquiera desde un módulo nativo.
Tengo que aclarar: usamos Azure Cloud Services, por lo que tenemos una restricción adicional de que no podemos usar varias direcciones IP (consulte: http://feedback.azure.com/forums/169386-cloud-services-web-and -worker-role / sugerencias / 1259311-multiple-ssl-and-domains-to-one-app ). Si puede apuntar varias direcciones IP a su servidor, entonces no tiene este problema, ya que también puede crear enlaces para IP, y estos funcionarán juntos. Más específicamente, necesita una IP para el sitio comodín (pero dado que ahora tiene una IP separada, no tendría que configurar un enlace de nombre de host comodín) y otra IP para todos los demás no comodín.
En realidad, nuestra solución fue el uso de un puerto SSL no estándar, 8443. Por lo tanto, el enlace SNI está realmente vinculado a este puerto, por lo que funciona junto con los otros enlaces. No es agradable, pero es una solución aceptable para nosotros hasta que pueda usar varias IP para roles web.
Los enlaces que no funcionan ahora
El primer enlace https es SNI con un certificado simple, el segundo no es SNI, con un certificado comodín.
El sitio http funciona, al igual que el sitio SNI https, pero el que tiene el enlace comodín muestra un "Error HTTP 503. El servicio no está disponible". (sin más información, sin seguimiento de solicitud fallida o entrada del registro de eventos).
Finalmente conseguir que básicamente funcione
Habilitar el registro de rastreo ETW como describió Tobias mostró que el error raíz fue el siguiente:
Solicitud (ID de solicitud 0xF500000080000008) rechazada por el motivo: UrlGroupLookupFailed.
Según tengo entendido, esto significa que http.sys no puede enrutar la solicitud a ningún punto final disponible.
La comprobación de los puntos finales registrados con netsh http show urlacl
mostró que efectivamente había algo registrado para el puerto 443:
Reserved URL : https://IP:443/
User: NT AUTHORITY\NETWORK SERVICE
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;NS)
Eliminar esto con netsh http delete urlacl url=https://IP:443/
finalmente habilitado mi enlace SSL.
logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets
2) hacer la solicitud 503 3) detener el registro de seguimiento. ejecutar: logman stop httptrace -ets
4) escribir registro de seguimiento en el archivo. ejecutar: tracerpt.exe httptrace.etl -of XML -o httptrace.xml
5) verifique el motivo de 503 en el archivo xml y publíquelo aquí.