サイト全体で安全な接続を使用するにはどうすればよいですか?[閉まっている]


18

Drupal 7では、セキュアログインモジュールを使用してセキュアな接続でサイトを実行しましたが、ログアウト時にhttpに戻らないようです。単純化するために、サイト全体をhttps://として実行したいだけです。

モジュールを使用せずにこれを行う簡単な方法はありますか?


今日、Htaccessモジュールをインストールし、既存の設定を変更して、このプロファイルをデプロイしました。...完璧に動作しているようです
アレクセイZubenko

回答:



35

すべてのページをリダイレクトしてSSLの使用を強制する場合は、これを.htaccessファイルに追加します。

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

以前に書き換えがない場合は、これを直後 に配置する必要がありRewriteEngine onます。


1

Apacheにルートアクセスしてvhostディレクティブを変更する場合、別の便利なトリックは、これをサイトのSSLディレクティブに追加することです。最新のブラウザのほとんどはこの指令に従います(IE9は従いません)

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

年齢は自由に設定できます。これは、SSLのみを使用してWebサイトと通信し、単純なHTTPを使用しないように、これに従うWebブラウザーに通知します。これにより、HTTP / HTTPS切り替えの状況全体に少しの保証が追加されます。

便利なハックです。

注:これは、サイトに有効なSSL証明書(自己署名、期限切れ、またはその他の不正な証明書ではない)がある場合にのみ機能します。そうしないと、max-ageの期限が切れるまでブラウザが接続できなくなります。


0

試してみたい別のオプションがあります。これは、インストールの1つに必要なものであり、追加のモジュールは必要ありません。

まず、.htaccessで:

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

これは次の後に追加する必要があります。

RewriteEngine on

次に、settings.phpで:

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

また、証明書の警告を回避するために、httpsドメインから取得する必要があるWebフォントやその他の参照などの外部リソースを確認することもできます。

お役に立てれば。


-2

別の解決策があります。それは単に$ _SERVER ['HTTPS'] = 'On';を追加することです。settings.phpファイル内

詳細はhttps://www.drupal.org/https-information#comment-9901783をご覧ください

ただし、htaccessメソッドはリダイレクトに関係なく表示されますが、settings.phpファイルではブラウザーのキャッシュをクリアする必要があります。


2
それ自体でトリックを行うには見えませんでした。drupalキャッシュをクリアする必要がありましたが、drupalページはhttpsとして提供されていましたが、画像などのリソースはそうではありませんでした。それらはロードされましたが、ブラウザは(コンソールで)それについて警告しており、ロックアイコンには警告がありました。適切なロックアイコンを取得するには、Ricks answerからhtaccessディレクティブを追加する必要がありました。
commonpike
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.