Comment puis-je simplement utiliser l'ensemble du site via une connexion sécurisée? [fermé]

18

Dans Drupal 7, j'ai utilisé le module de connexion sécurisée pour exécuter le site sur une connexion sécurisée, mais il semble qu'il ne revienne pas à http lors de la déconnexion. Je voudrais simplement exécuter l'ensemble du site en https: // comme simplification.

Existe-t-il un moyen simple de le faire sans utiliser de module?

Paul Connolly
la source
Aujourd'hui, je viens d'installer le module Htaccess , de modifier ses paramètres existants et de déployer ce profil. Semble fonctionner parfaitement ...
Aleksey Zubenko

Réponses:

35

Si vous souhaitez rediriger toutes vos pages pour être obligé d'utiliser SSL, ajoutez-le à votre .htaccessfichier.

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

Cela devrait être placé directement après RewriteEngine on si vous n'avez pas de réécritures précédentes.

Meule
la source
1

Une autre astuce pratique, si vous avez un accès root à Apache pour modifier vos directives vhost, est d'ajouter ceci à la directive SSL pour le site. La plupart des navigateurs modernes obéissent à cette directive (IE9 ne le fait pas)

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

Vous pouvez régler l'âge à tout ce que vous voulez. Ce que cela fait, c'est informer les navigateurs Web qui obéissent à cela d'utiliser UNIQUEMENT SSL pour communiquer avec votre site Web et jamais HTTP simple. Cela ajoute un peu d'assurance avec toute la situation de commutation HTTP / HTTPS.

C'est un hack pratique.

REMARQUE: cela ne fonctionnera que si vous avez un certificat SSL VALIDE (non auto-signé, expiré ou autrement incorrect) sur votre site. Si vous ne le faites pas, cela empêchera le navigateur de s'y connecter jusqu'à l'expiration de la période maximale.

Brady
la source
0

Il y a une autre option que vous voudrez peut-être essayer - c'est ce dont j'avais besoin pour l'une de mes installations, et elle ne nécessitait aucun module supplémentaire:

Tout d'abord, dans votre .htaccess:

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

Cela devrait être ajouté après:

RewriteEngine on

Ensuite, dans votre settings.php:

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

En outre, vous souhaiterez peut-être vérifier les ressources externes, telles que les polices Web et autres références qui doivent provenir d'un domaine https afin d'éviter les avertissements de certificat.

J'espère que cela t'aides.

Karolus
la source
-2

Il existe une autre solution, qui consiste simplement à ajouter $ _SERVER ['HTTPS'] = 'On'; dans le fichier settings.php

Voir plus sur https://www.drupal.org/https-information#comment-9901783

Il semble cependant que la méthode htaccess redirige indépendamment, alors que le fichier settings.php nécessite que le cache du navigateur soit effacé.

Steve
la source
2
N'a pas semblé faire l'affaire tout seul. J'ai dû vider les caches drupal, mais alors, même si les pages drupal étaient servies en https, les ressources comme les images ne l'étaient pas. Ils étaient chargés, mais le navigateur en avertissait (dans la console) et l'icône de verrouillage contenait un avertissement. J'ai dû ajouter la directive htaccess de la réponse de Ricks pour obtenir une icône de verrouillage appropriée.
commonpike