TL; TR: você não pode servir HTTP e HTTPS na mesma porta (443).
Embora seja possível, na teoria, descobrir com base nos primeiros dados do cliente, se o cliente estiver enviando uma solicitação HTTP (ou seja, GET ..
ou similar) ou estiver iniciando um handshake TLS ( \x16\x03...
), a maioria da web servidores não fazem isso. Em vez disso, eles esperam que o cliente se comporte adequadamente, ou seja, use HTTP simples em uma porta (geralmente 80) e HTTPS em outra porta (geralmente 443).
Seu URL de http://example.com:443
está fazendo com que o navegador faça uma solicitação HTTP simples para a porta 443. Mas o servidor está esperando o TLS lá, o que significa que sua solicitação HTTP simples é inesperada. O Apache é, no mínimo, legal o suficiente para verificar se os dados de entrada para uma solicitação HTTP simples, nesse caso, podem oferecer uma descrição mais útil:
Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please.
Se você tentar esses pedidos com outros servidores, eles poderão fechar a conexão sem nenhum erro ou apenas travar porque ainda esperam obter um handshake TLS do cliente.