Come posso semplicemente fare in modo che l'intero sito utilizzi una connessione sicura? [chiuso]


18

In Drupal 7, ho usato il modulo di accesso sicuro per eseguire il sito su una connessione protetta, ma sembra che non torni a http al logout. Vorrei solo eseguire l'intero sito come https: // come una semplificazione.

C'è un modo semplice per farlo senza l'uso del modulo?


Oggi ho appena installato il modulo Htaccess , modificato le sue impostazioni esistenti e distribuito questo profilo. Sembra funzionare perfettamente ...
Aleksey Zubenko,

Risposte:



35

Se vuoi reindirizzare tutte le tue pagine per essere costretto a utilizzare SSL, aggiungi questo al tuo .htaccessfile.

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

Questo dovrebbe essere inserito direttamente dopo RewriteEngine on se non ci sono riscritture precedenti.


1

Un altro trucco utile, se si dispone dell'accesso root ad Apache per modificare le direttive del vhost è quello di aggiungere questo alla direttiva SSL per il sito. La maggior parte dei browser moderni obbedisce a questa direttiva (IE9 no)

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

Puoi impostare l'età come preferisci. Quello che fa è informare i browser Web che obbediscono a questo SOLO per utilizzare SSL per comunicare con il tuo sito Web e mai semplice HTTP. Ciò aggiunge un po 'di sicurezza all'intera situazione di commutazione HTTP / HTTPS.

È un trucco pratico.

NOTA: funzionerà solo se sul tuo sito è presente un certificato SSL VALIDO (non autofirmato, scaduto o in altro modo errato). In caso contrario, impedirà al browser di connettersi ad esso fino alla scadenza del periodo massimo di validità.


0

C'è un'altra opzione che potresti voler provare: è ciò di cui avevo bisogno per una delle mie installazioni e non richiedeva moduli aggiuntivi:

Innanzitutto, nel tuo .htaccess:

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

Questo dovrebbe essere aggiunto dopo:

RewriteEngine on

Quindi, nel tuo settings.php:

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

Inoltre, potresti voler verificare la presenza di risorse esterne, come i caratteri Web e altri riferimenti che devono provenire da un dominio https per evitare avvisi sui certificati.

Spero che sia di aiuto.


-2

C'è un'altra soluzione, che è semplicemente aggiungere $ _SERVER ['HTTPS'] = 'On'; nel file settings.php

Scopri di più su https://www.drupal.org/https-information#comment-9901783

Sembra tuttavia che il metodo htaccess reindirizzi indipendentemente, mentre il file settings.php richiede la cache del browser per essere cancellato.


2
Non sembra fare il trucco da solo. Ho dovuto svuotare le cache dei drupal, ma poi, sebbene le pagine dei drupal fossero servite come https, risorse come le immagini no. Sono stati caricati, ma il browser lo stava avvisando (nella console) e l'icona del lucchetto aveva un avviso. Ho dovuto aggiungere la direttiva htaccess dalla risposta di Ricks per ottenere un'icona di blocco corretta.
commonpike,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.