Apache mod_rewrite: domain - www.domain com SSL curinga

1

Eu tenho um servidor Apache 2.2 e um certificado SSL curinga para * .domain.com e configurei um conjunto de regras mod_rewrite para 80 e 443 que redirecionará corretamente as solicitações de domain.com para www.domain.com:

RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ https://www.domain.com$1 [R=permanent,L]

(é esse para o 443; o do 80 simplesmente omite o 's' em 'https').

Essa parte está funcionando corretamente para http e https - ela faz a regravação - mas não resolve o problema que eu queria corrigir. Especificamente, quando alguém acessa https://domain.com , receberá um aviso de certificado porque o certificado curinga para * .domain.com não corresponde apenas a domain.com. Se eles optarem por aceitar o certificado e continuarem, a reescrita será executada corretamente e o ícone de bloqueio normal substituirá o ícone de bloqueio com raiva. O problema é que eles recebem o aviso em primeiro lugar - eles têm que escolher ignorar o aviso de certificado antes que a reescrita seja feita. Existe uma maneira correta de enviar tráfego para https://domain.com para https://www.domain.com antes de tentar fazer a negociação SSL? Parece que o mod_rewrite está fazendo isso depois do fato.

    
por Riblet 23.06.2014 / 17:40

2 respostas

2

A negociação SSL sempre acontece antes do início da solicitação HTTP, não há como evitar isso.

A única maneira de corrigir esse problema é obter um novo certificado que tenha domain.com e *.domain.com listado.

    
por 23.06.2014 / 19:49
0

Como Tero já apontou, a negociação SSL acontece antes de mod_rewrite entrar em ação. Isso significa que a única maneira de resolver isso é obter um certificado que também seja válido para domain.com .

Como o Apache suporta SNI, ele pode apresentar um certificado diferente para um nome de host diferente, portanto você pode obter um certificado adicional barato ou gratuito em uma empresa como o StartSSL.

No entanto, na minha experiência, as pessoas raramente digitam https:// em sua barra de endereço. Portanto, se você tiver certeza de que http://domain.com seja redirecionado diretamente para https://www.domain.com , não há problema.

    
por 23.06.2014 / 20:50