Pergunta: Como aplico 1 certificado OpenSSL a todos os sites localizados no diretório html?
Problema:Ao visitar https://localhost.site1.com
ou localizado https://localhost.site2.com
apenas index.html
em /var/www/html/index.html
é exibido porque default-ssl.conf
a raiz do documento é /var/www/html/
Eu tenho 2 multisites wordpress (e outros sites) localizados em /var/www/html/
:
/var/www/html/site1.com
e
/var/www/html/site2.com
No meu default-ssl.conf
eu tenho:
<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
No meu /etc/hosts
arquivo eu tenho:
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
O vhost para site1.com contém:
<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>
E o vhost para site2.com contém:
<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>
Alguma dica?
Responder1
Seus hosts virtuais estão escutando na porta 80, enquanto uma conexão HTTPS usa a porta 443. Para isso, você recebe o que está na configuração SSL padrão, já que essa é a única configuração para a porta 443.
Alterar suas VirtualHost
definições para <VirtualHost *:443>
provavelmente resolverá o problema.