0

I'm making a website hosted at sparrowthenerd.space, and I'm trying to have it use multiple subdomains so I can run NextCloud, OctoPrint, and a general webpage all from the same IP address. As I understand, this can be accomplished with VirtualHosts in Apache2. However, unless I remove the virtualhost tag from my conf file (below), I get an SSL Handshake Error with CloudFlare enabled, and an SSL protocol error without it.

I am using Apache2 v2.4.52 on Debian 11 Bullseye. The web server is self-hosted, and uses NodeJS on port 9999 by proxy (I think that's the right terminology?).

#<VirtualHost xxx:xx:xx:xxx:443>
        ServerAdmin webmaster@localhost
        ServerName sparrowthenerd.space
        DocumentRoot /var/www/sparrowthenerd

        ProxyPass /.well-known/ !
        ProxyPass / http://localhost:9999/
        ProxyPassReverse / http://localhost:9999/
        ProxyPreserveHost On

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
        SSLCertificateFile /etc/apache2/ssl/sparrowthenerd.space.pem
        SSLCertificateKeyFile /etc/apache2/ssl/sparrowthenerd.space.key


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www>
                AllowOverride none

                Order Allow,Deny
                Allow from all
        </Directory>
#</VirtualHost>

When the virtualhost tags are uncommented, I get the error. When they are commented, I do not, but I also then can't add extra subdomains. I am using the CloudFlare proxy servers with a Cloudflare SSL Certificate. Please let me know if you need more information, I'm happy to provide it!

2 Answers2

0

You shouldn't have an IP address in your VirtualHost directive. You should let Apache bind to all interfaces there:

<VirtualHost *:443>
Tero Kilkanen
  • 36,796
  • 3
  • 41
  • 63
0

Turns out I was an idiot, and forwarded my internal port 80 to external port 443 so the server was receiving HTTP requests instead of HTTPS and throwing the error.