Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: http and https overlap in virtual host | apache 2.4.25 deb9 |
|
Author |
|
jangar
Joined: 02 Apr 2020 Posts: 1 Location: Italy,Naples
|
Posted: Thu 02 Apr '20 13:24 Post subject: http and https overlap in virtual host | apache 2.4.25 deb9 |
|
|
Hi,
nice to partecipate to this list
I have a question:
i have many virtual-host on apache for http and https pointing same web application folder
/var/www/website1 --> /var/www/clients/client2/web1107/web
following this schema https://pastebin.com/raw/s6WacZzd
WebApplication has many domain list in db and impersonate that domains.
1) for http://website1.example.com and http://www.httpwebsite[1-1000].com there is this configuration
Code: | <Directory /var/www/website1>
AllowOverride None
Require all denied
</Directory>
<VirtualHost *:80>
DocumentRoot /var/www/clients/client2/web1107/web
ServerName website1.example.com
ServerAlias www.httpwebsite1.com
ServerAlias www.httpwebsite2.com
ServerAlias www.httpwebsite3.com
ServerAlias www.httpwebsite4.com
ServerAlias www.httpwebsite5.com
ServerAdmin webmaster@website1.example.com
ErrorLog /var/log/ispconfig/httpd/website1/error.log
<IfModule mod_ssl.c>
</IfModule>
<Directory /var/www/website1/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/clients/client2/web1107/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web1107 client2
</IfModule>
<IfModule mod_fastcgi.c>
<Directory /var/www/clients/client2/web1107/cgi-bin>
Require all granted
</Directory>
<Directory /var/www/website1/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
Action php-fcgi /php-fcgi virtual
Alias /php-fcgi /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1
FastCgiExternalServer /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1 -idle-timeout 300 -socket /var/lib/php7.0-fpm/web1107.sock -pass-header Authorization -pass-header Content-Type
</IfModule>
<IfModule mod_proxy_fcgi.c>
#ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix:///var/lib/php7.0-fpm/web1107.sock|fcgi://localhost//var/www/clients/client2/web1107/web/$1
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler "proxy:unix:/var/lib/php7.0-fpm/web1107.sock|fcgi://localhost"
</FilesMatch>
</Directory>
</IfModule>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web1107 client2
</IfModule>
<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client2/web1107/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client2/web1107/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
</VirtualHost> |
2) for https://website1.example.com i have another virtual host config file
Code: | <IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/clients/client2/web1107/web
ServerName website1.example.com
ServerAdmin webmaster@website1.example.com
ErrorLog /var/log/ispconfig/httpd/website1/error.log
<IfModule mod_ssl.c>
</IfModule>
<Directory /var/www/website1/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/clients/client2/web1107/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web1107 client2
</IfModule>
<IfModule mod_fastcgi.c>
<Directory /var/www/clients/client2/web1107/cgi-bin>
Require all granted
</Directory>
<Directory /var/www/website1/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
Action php-fcgi /php-fcgi virtual
Alias /php-fcgi /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1
FastCgiExternalServer /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1 -idle-timeout 300 -socket /var/lib/php7.0-fpm/web1107.sock -pass-header Authorization -pass-header Content-Type
</IfModule>
<IfModule mod_proxy_fcgi.c>
#ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix:///var/lib/php7.0-fpm/web1107.sock|fcgi://localhost//var/www/clients/client2/web1107/web/$1
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler "proxy:unix:/var/lib/php7.0-fpm/web1107.sock|fcgi://localhost"
</FilesMatch>
</Directory>
</IfModule>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web1107 client2
</IfModule>
<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client2/web1107/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client2/web1107/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
SSLCertificateFile /etc/letsencrypt/live/website1.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/website1.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule> |
3) for https://www.httpwebsite1.com i have another virtual host config file
Code: | <IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/clients/client2/web1107/web
ServerName www.httpwebsite1.com
ServerAdmin webmaster@httpwebsite1.com
ErrorLog /var/log/ispconfig/httpd/website1/error.log
<IfModule mod_ssl.c>
</IfModule>
<Directory /var/www/website1/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/clients/client2/web1107/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web1107 client2
</IfModule>
<IfModule mod_fastcgi.c>
<Directory /var/www/clients/client2/web1107/cgi-bin>
Require all granted
</Directory>
<Directory /var/www/website1/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler php-fcgi
</FilesMatch>
</Directory>
Action php-fcgi /php-fcgi virtual
Alias /php-fcgi /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1
FastCgiExternalServer /var/www/clients/client2/web1107/cgi-bin/php-fcgi-*-80-website1 -idle-timeout 300 -socket /var/lib/php7.0-fpm/web1107.sock -pass-header Authorization -pass-header Content-Type
</IfModule>
<IfModule mod_proxy_fcgi.c>
#ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix:///var/lib/php7.0-fpm/web1107.sock|fcgi://localhost//var/www/clients/client2/web1107/web/$1
<Directory /var/www/clients/client2/web1107/web>
<FilesMatch "\.php[345]?$">
SetHandler "proxy:unix:/var/lib/php7.0-fpm/web1107.sock|fcgi://localhost"
</FilesMatch>
</Directory>
</IfModule>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web1107 client2
</IfModule>
<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client2/web1107/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client2/web1107/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
SSLCertificateFile /etc/letsencrypt/live/www.httpwebsite1.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.httpwebsite1.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule> |
I user call http://website1.example.com apache serve web application on virtualhost1 and web application redirect to https://website1.example.com, than served by Virtualhost2
It's same with http://www.httpwebsite1.com served by virtualhost1: the web application redirect to https://www.httpwebsite1.com, thank served by VirtuaHost3
If i call http://www.httpwebsite2[2-1000].com, served by Virtulhost1 it's ok, but if i call https://www.httpwebsite[2-1000].com there is the issue. Apache serve user call by VirtualHost3 giving the VirtulHost3 ssl Certificate.
I'ts possible stop this Apache behavior?
Thanks[/code] |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Fri 03 Apr '20 8:22 Post subject: |
|
|
Apache sends the SSL certificate for the vhost where ServerName matches the clients requested domain. If it doesn't match it uses the default vhost.
So you may create a ssl vhost without ServerName and start it with
Code: |
<VirtualHost _default_:443>
|
Doing so, you will find any missing or mismatching vhosts. |
|
Back to top |
|
|
|
|
|
|