Ssl on subdomain redirect to main site [Apache configuration]

Hi,
I setup letsencrypt with follwing certificates

letsencrypt-auto --apache -d mysite.com -d intranet.mysite.com -d www.mysite.com

The certificate works fine for https://mysite.com

http://intranet.mysite.com is working fine, but over ssl, https://intranet.mysite.com redirects to http

Apache gives an error on restarting
[warn] default VirtualHost overlap on port 443, the first has precedence

sites-enabled/mysife.com.conf is as follows


<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com/public_html/
ErrorLog /var/www/mysite.com/logs/error.log

<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com/public_html/
ErrorLog /var/www/mysite.com/logs/error.log
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem

<VirtualHost *:80>
ServerName intranet.mysite.com
DocumentRoot /var/www/mysite.com/public_html/intranet/

<VirtualHost *:443>
ServerName intranet.mysite.com
DocumentRoot /var/www/mysite.com/public_html/intranet/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem


Please help

thanks in advance

Hi @desiphreak,

I suppose it is just a forum issue with copy paste but I can't see </VirtualHost> closing each of your defined VirtualHosts:

 <VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com/public_html/
ErrorLog /var/www/mysite.com/logs/error.log
</VirtualHost>

<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com/public_html/
ErrorLog /var/www/mysite.com/logs/error.log
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem
</VirtualHost>

<VirtualHost *:80>
ServerName intranet.mysite.com
DocumentRoot /var/www/mysite.com/public_html/intranet/
</VirtualHost>

<VirtualHost *:443>
ServerName intranet.mysite.com
DocumentRoot /var/www/mysite.com/public_html/intranet/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mysite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.com/chain.pem
</VirtualHost>

Regarding this issue:

This error usually means that you didn't define the directive NameVirtualHost for * so you should add this directive for port 80 and 443 to your conf, where? it depends, it is usually defined on /etc/apache2/ports.conf in Debian based distributions but it could be in another place in your distribution.

grep -ri "NameVirtualHost" /etc/apache2/*

or

grep -ri "NameVirtualHost" /etc/httpd/*

Could show to you where is defined the directive in your conf.

The NameVirtualHost directives that you should define are these:

NameVirtualHost *:80
NameVirtualHost *:443

Cheers,
sahsanu

Another thing to look into is whether letsencrypt-auto created a separate file in /etc/letsencrypt/sites-available with an additional VirtualHost directive for the HTTPS version of the site. (letsencrypt-auto --apache normally does try to do this as part of the certificate installation process.)

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.