Você pode usar isso e reescrever para o domínio que seu certificado foi emitido para:
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://www.example.com$1 [R=301,L]
Ou use este arquivo de inclusão no qual deseja impor o SSL, enquanto habilita o acesso HTTP a partes do servidor.
# Script to require SSL
<If "%{HTTPS} == 'on'">
SSLOptions +StrictRequire
SSLRequireSSL
</If>
<Else>
RedirectMatch permanent ^/?(.*) https://www.example.com/$1
</Else>
Você pode usar %{SERVER_NAME}
em vez de www.example.com
. Isso funciona bem com um certificado normal.
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=301,L]
A variável %{HTTP_HOST}
contém o nome do host da solicitação e pode ser usada em vez de www.exaxmple.com
. No entanto, isso pode não ser um nome de host que corresponda ao certificado. Ele funciona com certificados de vários domínios.
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://%{HOST_NAME}$1 [R=301,L]
Adicionando UseCanonicalName dns
à sua configuração UseCanonicalName dns
fornecerá SERVER_NAME
do DNS. No entanto, você precisa garantir que o DNS forneça o domínio desejado. Se você conseguir que isso funcione, você poderá usar a mesma configuração para todos os servidores. Como alternativa, você pode incluir um pequeno arquivo específico do servidor para fornecer o nome do servidor.
Você precisa ouvir em portas diferentes para HTTP e HTTPS. Teste cada um antes de ativar a regravação. Esta é uma configuração mínima para um site que escuta HTTP e HTTPS e redireciona todas as solicitações para HTTPS. O redirecionamento precisará de uma porta se forem usadas portas não padrão. Essa configuração depende do acesso ao diretório que está sendo configurado fora da definição do host virtual.
<VirtualHost *:80 *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/
ServerName www.example.com
ServerAlias example.com
SSLEngine On
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /etc/ssl/certs/www.example.com-cert.pem
SSLCertificateKeyFile /etc/ssl/private/www.example.com-key.pem
SSLCACertificatePath /etc/ssl/certs/
RewriteEngine On
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=301,L]
</VirtualHost>