Pregunta

Estoy intentando configurar nuestros servidores para permitir el tráfico a través de SSL.Soy consciente de que SSL no funciona con Name Virtual Host, pero tenemos todos nuestros servidores Apache en máquinas virtuales con IP privadas dedicadas.Tenemos una máquina virtual principal que tiene la configuración mod_proxy para enrutar el tráfico a las máquinas virtuales apropiadas.

Sin embargo, para enrutar el tráfico https necesitamos tener el certificado instalado en el proxy y en el vms.Contamos con un certificado comodín que se puede utilizar en todos nuestros hosts.Todo parece funcionar correctamente, pero recibo lo siguiente en los registros de Apache para el proxy:

[advertir] Inicio:Conflicto de puerto/IP del servidor SSL:host1.domain.com:443 (/etc/apache2/sites-enabled/host1:1) vs.host2.dominio.com:443 (/etc/apache2/sites-enabled/host2:1)

Hay uno de estos mensajes de error para cada host que hayamos configurado en el proxy.Nuestra configuración de host virtual para el proxy se publica a continuación:

<VirtualHost ipaddress:443>
    ServerName host1.domain.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / https://privateip:443/
    ProxyPassReverse / https://privateip:443/

    SSLProxyEngine on
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

¿Hay alguna manera de que pueda hacer que esto funcione?

¿Fue útil?

Solución

Parece que Apache le advierte que tiene varias secciones <VirtualHost> con la misma dirección IP y el puerto ... en cuanto a conseguir que funcione sin advertencias, creo que tendría que utilizar algo como servidor de nombres de Indicación (SNI), una forma de identificar el nombre de host solicitado como parte del protocolo de enlace SSL. Básicamente se le permite hacer el hosting virtual basado en nombres a través de SSL, pero no estoy seguro de lo bien que está soportado por los navegadores. Aparte de algo así como SNI, que está básicamente limitado a un nombre de dominio con SSL para cada dirección IP se expone a la Internet pública.

Por supuesto, si usted es capaz de acceder a los sitios web correctamente, es probable que sea bien haciendo caso omiso de las advertencias. Estos seres particulares no son muy graves - que son principalmente una indicación de lo que mirar si está experimentando problemas

Otros consejos

Por lo que yo sé, Apache soporta SNI desde la versión 2.2.12 Lamentablemente la documentación aún no refleja ese cambio.

http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI hasta que es terminado

Es posible que pueda reemplazar el:

VirtualHost ipaddress:443

con

VirtualHost *:443

Es probable que tenga TODO esto en todas sus anfitriones Virt.

es probable que aclarar ese mensaje. Dejar que la directiva ServerName preocupación sobre el encaminamiento de la solicitud de mensaje.

Una vez más, es posible que no sea capaz de hacer esto si usted tiene múltiples alias de IP a la misma máquina.

El host virtual se vería así:

NameVirtualHost IP_Address:443

<VirtualHost IP_Address:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt    # Where "ca" is the name of the Certificate
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin webmaster@domain_name.com
    DocumentRoot /var/www/html
    ServerName www.domain_name.com
    ErrorLog logs/www.domain_name.com-error_log
    CustomLog logs/www.domain_name.com-access_log common
</VirtualHost>

Apache no admite SSL en hosts virtuales basados ​​en nombres, solo en hosts virtuales basados ​​en IP.

Fuente:Preguntas frecuentes sobre Apache 2.2 SSL ¿Por qué no es posible utilizar alojamiento virtual basado en nombres para identificar diferentes hosts virtuales SSL?

A diferencia de SSL, la especificación TLS permite hosts basados ​​en nombres (SNI como lo mencionó otra persona), pero Apache aún no admite esta característica.Supuestamente lo hará en una versión futura cuando se compile con openssl 0.9.8.

También, mod_gnutls afirma ser compatible con SNI, pero en realidad nunca lo he probado.

Lo primero que necesita NameVirtualHost ip: 443 en que el archivo de configuración! Es probable que tenga uno con 80 al final, pero también necesitará una con 443.

En segundo lugar se necesita un certificado * .dominio (comodín) (es posible hacer uno)

En tercer lugar se puede hacer sólo telas something.domain en una ip (debido al certificado)

debe agregar a continuación parte para permitir NameVirtualHost con funcionalidad IP dada.

NameVirtualHost IP_Address:443
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top