ฉันจะทำให้ทั้งเว็บไซต์ใช้การเชื่อมต่อที่ปลอดภัยได้อย่างไร [ปิด]


18

ใน Drupal 7 ฉันใช้โมดูลเข้าสู่ระบบแบบปลอดภัยเพื่อเรียกใช้ไซต์บนการเชื่อมต่อที่ปลอดภัย แต่ดูเหมือนว่าไม่ได้เปลี่ยนกลับเป็น http เมื่อออกจากระบบ ฉันต้องการเรียกใช้ทั้งไซต์เป็น https: // เพื่อให้เข้าใจง่าย

มีวิธีง่ายๆในการทำเช่นนี้โดยไม่ต้องใช้โมดูลหรือไม่?


วันนี้ฉันเพิ่งติดตั้งโมดูล Htaccessเปลี่ยนการตั้งค่าที่มีอยู่และปรับใช้โปรไฟล์นี้ ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์แบบ ...
Aleksey 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 เพื่อสื่อสารกับเว็บไซต์ของคุณและไม่เคย HTTP ธรรมดา นี่เป็นการเพิ่มความมั่นใจเล็กน้อยด้วยสถานการณ์การสลับ HTTP / HTTPS ทั้งหมด

แฮ็คที่มีประโยชน์

หมายเหตุ: วิธีนี้จะใช้งานได้หากคุณมีใบรับรอง SSL ที่ถูกต้อง (ไม่ได้เซ็นชื่อเองหมดอายุหรือไม่ถูกต้อง) ในเว็บไซต์ของคุณ หากคุณไม่ทำเช่นนี้เบราว์เซอร์จะป้องกันไม่ให้เชื่อมต่อจนกว่าจะครบอายุสูงสุด


0

มีตัวเลือกอื่นที่คุณอาจต้องการลองใช้ซึ่งเป็นสิ่งที่ฉันต้องการสำหรับการติดตั้งตัวใดตัวหนึ่งและไม่จำเป็นต้องมีโมดูลเพิ่มเติม:

ก่อนอื่นใน. 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 เพื่อหลีกเลี่ยงคำเตือนใบรับรอง

หวังว่านี่จะช่วยได้


-2

มีวิธีแก้ไขปัญหาอื่นซึ่งเพียงเพิ่ม $ _SERVER ['HTTPS'] = 'เปิด'; ในไฟล์ settings.php

ดูเพิ่มเติมได้ที่https://www.drupal.org/https-information#comment-9901783

มันจะปรากฏขึ้นอย่างไรก็ตามวิธีการ htaccess เปลี่ยนเส้นทางโดยไม่คำนึงถึงในขณะที่ไฟล์ settings.php ต้องล้างแคชเบราว์เซอร์


2
ไม่ปรากฏว่าทำเคล็ดลับด้วยตัวเอง ต้องล้างแคชของ drupal แต่จากนั้นหน้า drupal ทั้งหมดจะทำหน้าที่เป็น https ทรัพยากรเช่นภาพไม่ได้ พวกเขาถูกโหลด แต่เบราว์เซอร์เตือนเกี่ยวกับมัน (ในคอนโซล) และไอคอนล็อคมีคำเตือน ฉันต้องเพิ่มคำสั่ง htaccess จากคำตอบของ Ricks เพื่อให้ได้ไอคอนล็อคที่เหมาะสม
commonpike
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.