example configurar apache ssl ssl-certificate

configurar - virtual host apache centos



Apache Name Virtual Host con SSL (7)

Apache no es compatible con SSL en host virtual basado en nombre, solo en hosts virtuales basados ​​en IP.

Fuente: pregunta frecuente de Apache 2.2 SSL ¿ Por qué no es posible usar el alojamiento virtual basado en nombre para identificar diferentes servidores virtuales SSL?

A diferencia de SSL, la especificación TLS permite hosts basados ​​en nombre (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 contra openssl 0.9.8.

Además, mod_gnutls afirma que admite SNI, pero en realidad nunca lo he intentado.

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 primaria que tiene la configuración mod_proxy para enrutar el tráfico al vms apropiado.

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

[warn] Init: servidor SSL conflicto de IP / puerto: host1.domain.com:443 (/ etc / apache2 / sites-enabled / host1: 1) vs. host2.domain.com:443 (/ etc / apache2 / sites- habilitado / host2: 1)

Hay uno de estos mensajes de error para cada host que hemos 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?


DEBE agregar la parte siguiente para habilitar la funcionalidad de NameVirtualHost con una IP determinada.

NameVirtualHost IP_Address:443


El VirtualHost 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>


Parece que Apache te advierte que tienes varias secciones <VirtualHost> con la misma dirección IP y puerto ... en cuanto a que funcione sin advertencias, creo que necesitarías usar algo como Server Name Indication (SNI) , una forma de identificar el nombre de host solicitado como parte del protocolo de enlace SSL. Básicamente, te permite hacer hosting virtual basado en nombres a través de SSL, pero no estoy seguro de qué tan bien sea compatible con los navegadores. Aparte de algo como SNI, básicamente está limitado a un nombre de dominio habilitado para SSL para cada dirección IP que expone a Internet pública.

Por supuesto, si puede acceder correctamente a los sitios web, probablemente ignore las advertencias. Estos en particular no son muy serios, son principalmente una indicación de qué mirar si tiene problemas



Primero necesitas NameVirtualHost ip: 443 en tu archivo de configuración. Probablemente tengas uno con 80 al final, pero también necesitarás uno con 443.

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

En tercer lugar, solo puede hacer que algo. Dominio web en una ip (debido al certificado)


Puede reemplazar el:

VirtualHost ipaddress:443

con

VirtualHost *:443

Probablemente necesites hacer esto en todos tus hosts virt.

Probablemente aclarará ese mensaje. Deje que la directiva ServerName se preocupe por enrutar la solicitud de mensaje.

De nuevo, es posible que no pueda hacer esto si tiene múltiples alias de IP en la misma máquina.