Bagaimana cara saya membuat seluruh situs menggunakan koneksi yang aman? [Tutup]

18

Di Drupal 7, saya menggunakan modul login Aman untuk menjalankan situs pada koneksi yang aman, tetapi tampaknya itu tidak kembali ke http saat logout. Saya ingin menjalankan seluruh situs sebagai https: // sebagai penyederhanaan.

Apakah ada cara sederhana untuk melakukan ini tanpa menggunakan modul?

Paul Connolly
sumber
Hari ini saya baru saja menginstal modul Htaccess , mengubah pengaturan yang ada dan menyebarkan profil ini. Tampaknya bekerja dengan sempurna ...
Aleksey Zubenko

Jawaban:

35

Jika Anda ingin mengarahkan ulang semua halaman Anda untuk dipaksa menggunakan SSL, tambahkan ini ke .htaccessfile Anda .

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

Ini harus ditempatkan langsung setelah RewriteEngine on jika Anda tidak memiliki penulisan ulang sebelumnya.

Rick
sumber
1

Trik lain yang berguna, jika Anda memiliki akses root ke Apache untuk mengubah arahan vhost Anda adalah menambahkan ini ke arahan SSL untuk situs. Sebagian besar browser modern mematuhi arahan ini (IE9 tidak)

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

Anda dapat mengatur usia sesuai keinginan Anda. Apa yang dilakukan adalah menginformasikan browser web yang mematuhinya HANYA menggunakan SSL untuk berkomunikasi dengan situs web Anda dan tidak pernah menggunakan HTTP. Ini menambah sedikit jaminan dengan seluruh situasi switching HTTP / HTTPS.

Ini adalah hack yang berguna.

CATATAN: Ini hanya akan berfungsi jika Anda memiliki sertifikat SSL VALID (tidak ditandatangani sendiri, kedaluwarsa atau salah) di situs Anda. Jika tidak, itu akan mencegah browser untuk menghubungkannya sampai periode usia maksimum berakhir.

Brady
sumber
0

Ada opsi lain yang mungkin ingin Anda coba — itulah yang saya butuhkan untuk salah satu instal saya, dan tidak diperlukan modul tambahan:

Pertama, di .htaccess Anda:

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

Ini harus ditambahkan setelah:

RewriteEngine on

Kemudian, di settings.php Anda:

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

Selain itu, Anda mungkin ingin memeriksa sumber daya eksternal, seperti font Web dan referensi lain yang perlu berasal dari domain https untuk menghindari peringatan sertifikat.

Semoga ini membantu.

karolus
sumber
-2

Ada solusi lain, yaitu dengan menambahkan $ _SERVER ['HTTPS'] = 'On'; dalam file settings.php

Lihat lebih lanjut di https://www.drupal.org/https-information#comment-9901783

Akan tetapi, metode htaccess mengarahkan ulang terlepas dari apa pun, sedangkan file settings.php memerlukan cache browser untuk dihapus.

Steve
sumber
2
Tidak tahu melakukan trik dengan sendirinya. Harus menghapus cache drupal, tetapi kemudian, meskipun halaman drupal disajikan sebagai https, sumber daya seperti gambar tidak. Mereka dimuat, tetapi browser memperingatkan tentang hal itu (di konsol) dan ikon kunci mendapat peringatan. Saya harus menambahkan arahan htaccess dari jawaban Ricks untuk mendapatkan ikon kunci yang tepat.
Commonpike