Here is the background of the problem:
Recently I added SSL certificate (purchased from a CA) to my Apache server. After making configuration changes, opening the port and restarting the server, the https connection still won’t work. From Chrome, I got “Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.”; and from FireFox, simply “connection interrupted”. Neither search term really offer much help. However one tips really helped is to check http on port 443 directly.
That worked. So in my case, it’s almost like Apache does not recognize SSL request. A new round of checking configuration and certificate files ensued.
I did find the fix in the end. In my Apache virtual host files, I have virtual host entries defined like this:
I had to change it to <VirtualHost SERVER_IP:80>
It’s probably because Apache matched the SSL request to a non-SSL virtual host and tried to serve it. So if you are adding SSL to the mix, remember to check the previously defined virtual hosts on port 80 and tighten up the rule.