Pregunta: ¿Cómo aplico 1 certificado OpenSSL a todos los sitios web ubicados en el directorio html?
Problema:Al visitar https://localhost.site1.com
o https://localhost.site2.com
solo se muestra index.html
ubicado en /var/www/html/index.html
porque default-ssl.conf
la raíz del documento es /var/www/html/
Tengo 2 sitios múltiples de WordPress (y otros sitios) ubicados en /var/www/html/
:
/var/www/html/site1.com
y
/var/www/html/site2.com
En mi default-ssl.conf
tengo:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/localhost.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
En mi /etc/hosts
archivo tengo:
127.0.1.1 excalibur
127.0.0.1 localhost
127.0.0.1 localhost.site1.com *.localhost.site1.com # mainsite url
127.0.0.1 subsite-a.localhost.site1.com
127.0.0.1 subsite-b.localhost.site1.com
127.0.0.1 subsite-c.localhost.site1.com
127.0.0.1 localhost.site2.com *.localhost.site2.com # mainsite url
El vhost de site1.com contiene:
<VirtualHost *:80>
ServerName localhost.site1.com
ServerAlias www.localhost.site1.com
# If this is the default configuration file we can use: 'ServerName localhost' or also 'ServerAlias localhost'.
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/localhost.site1.com.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.site1.com.access.log combined
DocumentRoot /var/www/html/site1.com
<Directory /var/www/html/site1.com>
Options None FollowSymLinks
# Enable .htaccess Overrides:
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory /var/www/html/site1.com/wp-content>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
Y el vhost para site2.com contiene:
<VirtualHost *:80>
ServerName localhost.site2.com
ServerAlias www.localhost.site2.com
# If this is the default configuration file we can use: 'ServerName localhost' or also 'ServerAlias localhost'.
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/localhost.site2.com.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.site2.com.access.log combined
DocumentRoot /var/www/html/site2.com
<Directory /var/www/html/site2.com>
Options None FollowSymLinks
# Enable .htaccess Overrides:
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory /var/www/html/site2.com/wp-content>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
¿Algun consejo?
Respuesta1
Sus hosts virtuales escuchan en el puerto 80, mientras que una conexión HTTPS usa el puerto 443. Para esto, recibe lo que está en la configuración SSL predeterminada, ya que esa es la única configuración para el puerto 443.
Cambiar sus VirtualHost
definiciones <VirtualHost *:443>
probablemente resolverá el problema.