Recentemente, adquiri um certificado SSL para meu site principal ( link ). Funciona muito bem e até configurei uma regra de .htaccess para que todo o tráfego nesse site seja criptografado. (Estou executando o Apache.)
No entanto, também tenho outros sites nesse mesmo servidor, com o mesmo endereço IP. Por exemplo, eu tenho um blog ( link ). Ele funciona muito bem, desde que eu me conecte à versão não criptografada. Não desejo ativar a criptografia para este site, pois sei que meu certificado existente não inclui esse subdomínio e não quero pagar pelo endereço IP adicional para fazer isso. Então tudo fica bem se o usuário digitar http: // mas se o usuário digitar https: // (por qualquer motivo), um aviso aparece dizendo que o site é um impostor (como esperado, porque o certificado está errado). Mas, se o usuário clicar para continuar, ele será direcionado ao site principal, em vez do blog no subdomínio. Esta é uma circunstância que raramente será encontrada na prática, mas eu sinto que o comportamento correto é dar um aviso e, em seguida, prosseguir para o site "impostor" correto. Ou provavelmente seria bom para mim se ele falhou completamente.
Eu entendo alguns dos problemas em jogo. Primeiro, eu entendo que o material SSL acontece antes que o Apache receba a solicitação, e é por isso que geralmente não é possível ter várias certs no mesmo endereço IP. Também parece estar me impedindo de usar apenas uma regra .htaccess para encaminhar todo mundo para a http: // versão do site (o oposto do que eu faço no site principal).
Portanto, a maneira que entendo o que está acontecendo é a seguinte: O SSL lida com a solicitação de certificado retornando o certificado errado para o navegador. O navegador hesita, mas nos permite prosseguir. Então o Apache não sabe qual URL foi solicitado, mas sabe que ele estava na porta 443, então ele retorna o site principal. O navegador acha que obteve o blog do subdomínio, portanto, ele exibe essa URL.
Meus vhosts atuais para o site principal são assim:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.wemarsh.com
ServerAlias wemarsh.com
DirectoryIndex index.html
DocumentRoot redacted
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName www.wemarsh.com
ServerAlias wemarsh.com
SSLEngine on
SSLCertificateFile redacted
SSLCertificateKeyFile redacted
SSLCertificateChainFile redacted
SSLCACertificateFile redacted
DirectoryIndex index.html
DocumentRoot redacted
</VirtualHost>
Meu vhost atual para o blog do subdomínio é assim:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName gallivant.wemarsh.com
DirectoryIndex index.php
DocumentRoot redacted
</VirtualHost>
Eu também tentei definir a porta 443 nos vhosts para o subdomínio, mas isso não funcionou.
É possível fazer o que estou tentando fazer? Alguém tem uma solução? Em algum momento futuro, a situação se tornará mais complexa quando eu adicionar um endereço IP adicional e outro certificado ao servidor, por isso, lembre-se disso ao fazer sugestões.
Suponho que os provedores de hospedagem compartilhada devam estar fazendo isso de alguma forma, caso contrário, todos os sites que não são https quebrariam, certo?
(Nota: eu intencionalmente não vinculei a versão https do vagabundo. A última coisa que eu preciso é que o Google direcione as pessoas para esse bug, então, por favor, evite associar isso às suas respostas.)
Obrigado antecipadamente!