Números de puerto para SSL

Tenemos un sitio web existente con HTTP en el puerto 80 y HTTPS en el puerto 443. Estoy agregando un segundo sitio a eso ahora, y por lo que tengo entendido, no puedo alojar dos sitios en el mismo puerto SSL.

Entonces, mi pregunta es: ¿qué rango de número de puerto es apropiado para usar como mi puerto SSL en el segundo sitio?

Comentarios

  • Podría estar equivocado, pero creo que una certificación SSL válida requiere estar en el puerto 443, y creo que esta es la razón por la que el alojamiento compartido le brinda un Dirección IP al comprar un SSL. Pero … este no es mi campo, espero que alguna otra persona geek pueda confirmarlo.

Responder

En realidad, PUEDE alojar varios sitios SSL en el puerto 443. El siguiente código en su archivo de configuración de Apache funcionará.

De lo contrario, puede usar los puertos que desee. La desventaja que los usuarios deberán incluir el número de puerto en la URL (por ejemplo, https://yourdomain.com:445/ )

## SSL (HTTPS) PORT 443 Listen 443 NameVirtualHost *:443 LoadModule ssl_module modules/mod_ssl.so SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin <VirtualHost *:443> ServerName host1.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/httpd/ssl/host1.crt SSLCertificateKeyFile /etc/httpd/ssl/host1.key SSLVerifyClient none SSLProxyEngine off SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" DocumentRoot /var/www/host1/ <Directory "/var/www/host1/"> Options Indexes FollowSymLinks AllowOverride All Order Allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> ServerName host2.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/httpd/ssl/host2.crt SSLCertificateKeyFile /etc/httpd/ssl/host2.key SSLVerifyClient none SSLProxyEngine off SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" DocumentRoot /var/www/host2/ <Directory "/var/www/host2/"> Options Indexes FollowSymLinks AllowOverride All Order Allow,deny Allow from all </Directory> </VirtualHost> 

Comentarios

  • Gracias, pero este es un sitio IIS. ¿Alguna idea de cómo podría hacer lo mismo?
  • Responder

    Cuando dices «segundo sitio» – ¿Te refieres a un segundo nombre de dominio? Al igual que en, «actualmente aloja https://www.mycompany.com en un clúster y desea alojar https://www.yourcompany.com en ese mismo clúster? Creo que lo que» estás buscando es «alojamiento virtual»: http://support.microsoft.com/kb/q190008

    Aún necesitará comprar un segundo certificado SSL, pero podrá alojar ambos al mismo Dirección IP bajo los puertos estándar (que, como mínimo, aumentará la confianza del usuario en su sitio).

    Comentarios

    • Usé host nombres de encabezado, y los dos sitios tienen el formato primero.miempresa.com y segundo.miempresa.com. El problema es que en » Identificación avanzada del sitio web » hay tres columnas para HTTP (dirección IP, puerto TCP y valor de encabezado del host) pero solo dos para HTTPS (dirección IP y puerto SSL), por lo que no ‘ realmente parece posible por lo que puedo ver.

    Respuesta

    Tradicionalmente, necesita una dirección IP por enlace SSL. No es posible agregar un encabezado de host al configurar los enlaces. El motivo de esto es que el encabezado de host es parte de los encabezados HTTP enviados por los navegadores y estos encabezados están encriptados como parte del tráfico SSL. Para Lea el encabezado del nombre del host, el servidor primero debe descifrar el tráfico, pero para hacerlo necesita saber qué certificado usar. Para eso necesitaría el encabezado del host para entrar en un círculo vicioso.

    Una solución sería que el servidor probara todos los certificados instalados e intentara descifrar la solicitud. Aunque esto podría funcionar con algunos certificados instalados, no lo hará para servidores con décimas o cientos de sitios web SSL. Ralentizaría drásticamente el servidor, ya que el servidor tendría que hacer esto para cada solicitud entrante.

    La solución para esto es una extensión del protocolo SSL llamada Indicación de nombre de servidor (SNI) . Esto agrega el nombre de host al protocolo SSL que permite al servidor consulte el encabezado del host antes de que tenga que descifrar el tráfico SSL. Esta extensión no es compatible con ninguna versión de IIS anterior a IIS 8 (Windows 2012). En el lado del cliente, SNI es compatible con OS X 10.5.6 y Windows Vista o superior . SNI no es compatible con SChannel en Windows XP y, por lo tanto, no es compatible con ninguna versión de Internet Explorer (incluso 8.0) en Windows XP.

    Respuesta

    En IIS (como con otros servidores web) hay tres identificadores clave que identifican su sitio para solicitudes entrantes:

    1. dirección IP
    2. TCP puerto
    3. Encabezado de host

    Si está ejecutando varios sitios web en un solo servidor web, al menos uno de esos tres debe ser diferente para cada sitio. En muchos entornos, un servidor solo recibe una única dirección IP, por lo que luego deja el puerto TCP y el encabezado del host que se pueden cambiar. Es posible ejecutar un sitio web https en un puerto diferente, solo tiene que especificar el puerto en la URL, lo cual no siempre es deseable (esto sería algo así como https://www.foo.com:32000/index.html ). La mayoría de las veces, desea ejecutar todos sus sitios web en el puerto 80 (http) o 443 (https) para terminar con URL limpias. Eso deja el encabezado del host como el único elemento que desea cambiar.

    En IIS, puede tener varios sitios en la misma combinación de IP / puerto que usan SSL y encabezados de host.La clave es que debe utilizar un certificado comodín o un certificado SAN (nombres alternativos del sujeto) que especifique varios nombres de host en el propio certificado. No puede establecer los enlaces de encabezado de host para los encabezados de host en un sitio SSL en la interfaz de usuario del Administrador de IIS. Debe hacerlo a través de la línea de comandos o editar manualmente el archivo applicationHost.config en el servidor.

    La información de Technet sobre cómo configurar esto a través de la línea de comando se puede encontrar aquí .

    Había una publicación en el Foro IIS con un problema similar a este que también se puede encontrar aquí .

    Después de ejecutar el comando o editar manualmente el archivo de configuración, su archivo applicationHost.config podría tener un aspecto similar a esto:

    <site name="first.mycompany.com"> ... <bindings> <binding protocol="http" bindingInformation="192.168.10.100:80:first.mycompany.com" /> <binding protocol="https" bindingInformation="192.168.10.100:443:first.mycompany.com" /> </bindings> ... </site> <site name="second.mycompany.com"> ... <bindings> <binding protocol="http" bindingInformation="192.168.10.100:80:second.mycompany.com" /> <binding protocol="https" bindingInformation="192.168.10.100:443:second.mycompany.com" /> </bindings> ... </site> 

    A continuación, verá los enlaces en el administrador de IIS. Espero que te ayude.

    * EDIT * La información anterior asumió esto El problema estaba relacionado con IIS7. Si es para IIS6, hay un procedimiento diferente a seguir. Puede encontrar información sobre eso aquí .

    Responder

    considerando su último comentario y después de revisar las respuestas de los expertos, puedo recomendar dos soluciones.

    La mejor solución es:

    Compre un certificado ssl comodín que le permitirá asegurar sub .domain.com alojado en la misma IP (el certificado SSL requiere una IP dedicada).

    Soluciones alternativas:

    Puede comprar dos certificados SSL diferentes, uno para cada sitio web. Aquí puede no puedo alojarlos en la misma ip.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *