Como eu simplesmente faço o site inteiro usar uma conexão segura? [fechadas]


18

No Drupal 7, usei o módulo de login seguro para executar o site em uma conexão segura, mas parece que ele não volta ao http no logout. Gostaria apenas de executar o site inteiro como https: // como uma simplificação.

Existe uma maneira simples de fazer isso sem o uso do módulo?


Hoje, acabei de instalar o módulo Htaccess , alterei as configurações existentes e implantei esse perfil. Parece funcionar perfeitamente ...
Aleksey Zubenko

Respostas:



35

Se você deseja redirecionar todas as suas páginas para ser forçado a usar SSL, adicione-o ao seu .htaccessarquivo.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Isso deve ser colocado diretamente depois RewriteEngine on se você não tiver reescritas anteriormente.


1

Outro truque útil, se você tiver acesso root ao Apache para alterar suas diretivas vhost, adicione-o à diretiva SSL do site. A maioria dos navegadores modernos obedece a essa diretiva (o IE9 não)

Header always set Strict-Transport-Security "max-age=63072000"

Você pode definir a idade para o que quiser. O que isso faz é informar aos navegadores da Web que obedecem a isso, APENAS usar SSL para se comunicar com seu site e nunca HTTP simples. Isso adiciona um pouco de garantia a toda a situação de comutação HTTP / HTTPS.

É um truque útil.

NOTA: Isso só funcionará se você tiver um certificado SSL VÁLIDO (não assinado automaticamente, expirado ou incorreto) em seu site. Caso contrário, impedirá que o navegador se conecte a ele até o período máximo de idade expirar.


0

Há outra opção que você pode tentar - é o que eu precisava para uma das minhas instalações e não exigiu módulos adicionais:

Primeiro, no seu .htaccess:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www\.yourdomainhere\.com*
RewriteRule ^(.*)$ https://www.yourdomainhere.com/ [L,R=301]

Isso deve ser adicionado após:

RewriteEngine on

Então, no seu settings.php:

$base_url = 'https://www.yourdomainhere.com'; 

Além disso, convém verificar recursos externos, como fontes da Web e outras referências que precisam ser provenientes de um domínio https para evitar avisos de certificado.

Espero que isto ajude.


-2

Existe outra solução, que é simplesmente adicionar $ _SERVER ['HTTPS'] = 'On'; no arquivo settings.php

Veja mais em https://www.drupal.org/https-information#comment-9901783

Parece, no entanto, que o método htaccess redireciona independentemente, enquanto o arquivo settings.php exige que o cache do navegador seja limpo.


2
Não apareceu para fazer o truque por si só. Precisava limpar os caches drupal, mas, apesar de as páginas drupal serem servidas como https, recursos como imagens não eram. Eles foram carregados, mas o navegador estava avisando sobre isso (no console) e o ícone de cadeado tinha um aviso. Eu tive que adicionar a diretiva htaccess da resposta do Ricks para obter um ícone de cadeado adequado.
commonpike
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.