Tengo un servidor virtual alojado en un ISP con 2 direcciones IPv4 públicas. Quiero ejecutar varios subdominios (más de 2) con Apache y servirlos a través de HTTP y HTTPS. El certificado SSL es un comodín para *.midominio.com.
Intenté configurar Apache en Debian de esta manera pero fallé. O mis servidores virtuales no son aceptados o recibo errores de SSL. (Sé que Apache no ve el nombre de host solicitado antes de entregar el certificado, pero el certificado incluye todos los subdominios posibles)
Ayúdenos a crear un httpd.conf que funcione mejor con el diseño de configuración de Apache de Debian.
Todos los detalles:
- Apache escuchando en *:80 para HTTP y *:443 para HTTPS
- Todos los NameVirtualHosts, alias, etc. se definirán para ambos puertos/protocolos a la vez.
- mydomain.com y www.mydomain.com predeterminados deben tener como raíz /var/www
- NameVirtualHosts adicionales para foo.mydomain.com y bar.mydomain.com, etc. que se pueden configurar especialmente, por ejemplo, para tener otro DocumentRoot
Respuesta1
apachepoderver el nombre de host solicitado, usandoIndicación del nombre del servidor TLS.
Sin embargo, esto requiere un navegador web relativamente reciente. Por ejemplo, quienes utilicen Internet Explorer en Windows XP recibirán mensajes de discrepancia de certificados para dominios adicionales. (Afortunadamente, los usuarios de WinXP/IE están casi extintos).Artículo de Wikipediatiene una lista yaquí hay una página de pruebasi no estás seguro.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
(Sub)dominios adicionales:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>