mod_write HTTPS remover “www”

1

Estou tentando me preparar para a próxima versão "Non Secure Display" v56 do Chrome.

Eu gerencio um serviço de website: example.com

Eu ofereço a cada cliente um subdomínio do serviço: cust1.example.com , cust2.example.com , etc.

Há alguns anos, configurei o serviço para aceitar www.cust1.example.com , www.cust2.example.com , etc. Principalmente porque os clientes sempre adicionavam o "www" à frente de tudo. Eu queria ter certeza de que eles recebessem o site deles e não uma mensagem de "domínio inválido".

Eu comprei um certificado SSL curinga *.example.com para cobrir os sites dos clientes. Obviamente, isso não funciona para www.cust1.example.com , etc. A maioria dos meus clientes não usou HTTPS, então isso não foi um problema.

Com os navegadores modernos forçando o https agora, está se tornando um problema.

Eu tentei usar mod_rewrite para corrigir o problema.

RewriteCond %{HTTP_HOST} ^www\.([^\.]+)\.example\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://%1.example.com/$1 [R=302,E=nocache:1,L]

Observação: estou usando o 302 enquanto testo uma solução para não enviar um redirecionamento acidentalmente ao cache do navegador e nunca mais alterá-lo.

O problema é quando você começa com HTTPS no navegador, o redirecionamento fornecido de volta do servidor ainda dispara o erro ERR_CERT_COMMON_NAME_INVALID antes que ele possa redirecionar para remover o "www" e chegar a uma página com um certificado válido.

Como posso remover o prefixo "www" no tráfego HTTPS sem acionar a resposta Not Secure do navegador?

    
por Mike K 24.01.2017 / 23:54

1 resposta

0

Isso redirecionará www.example.com para o link

RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://example.com/$1 [R,QSA,L]
    
por 25.01.2017 / 07:11