พื้นที่ผู้ดูแลระบบ Drupal และเข้าสู่ระบบรักษาความปลอดภัยด้วย HTTPS


15

ฉันได้อ่านเกี่ยวกับเรื่องนี้มามากมายและลองใช้วิธีการต่าง ๆ ที่ฉันพบและยังไม่สามารถทำงานได้อย่างถูกต้อง

ฉันต้องการที่จะสามารถรักษาความปลอดภัยพื้นที่ผู้ดูแลระบบและหน้าเข้าสู่ระบบที่เกี่ยวข้อง ดังนั้นทุกอย่างใน example.com/admin/* หรือ example.com/user/* ฯลฯ จะต้องผ่าน SSL / TLS เราต้องการให้สิ่งนี้ใช้กับแต่ละไซต์ที่มีการตั้งค่าแบบหลายไซต์ ดังนั้น example1.com, example2.com, example3.com ล้วนอยู่ในเซิร์ฟเวอร์ / บัญชีผู้ใช้เดียวกัน

การตั้งค่า

  • Drupal 7 multi site
  • เปิดใช้งานทำความสะอาด URL แล้ว
  • PHP 5.3
  • MySQL v14 d5
  • apache2

หมายเหตุ

  • Securepages ไม่ใช่ตัวเลือกเนื่องจากไม่มีการวางจำหน่าย Drupal 7 ที่มีความเสถียรและการใช้รุ่น dev ที่มีอยู่ต้องใช้การปรับปรุง Drupal Core ซึ่งขัดกับนโยบายของเรา
  • ทดลองใช้งานเซสชัน 443 โดยไม่ประสบความสำเร็จ
  • พยายามเข้าสู่ระบบที่ปลอดภัยโดยไม่ประสบความสำเร็จ
  • มีการติดตั้งใบรับรอง SSL (ตอนนี้ลงนามเองขณะทดสอบ) และทำงานบนเซิร์ฟเวอร์เพื่อวัตถุประสงค์อื่นไม่ใช่ Drupal
  • ฉันได้อ่านเอกสารทั้งหมดใน Drupal.org เกี่ยวกับการเปิดใช้ HTTPS และพยายามที่จะทำตามคำแนะนำที่นั่นด้วยความสำเร็จเพียงเล็กน้อย
  • ฉันสลับการตั้งค่า $ conf ['https'] ใน settings.php โดยไม่มีผลลัพธ์ที่มองเห็นได้

คำถาม

หากฉันเปิดใช้งาน HTTPS สำหรับทุกสิ่งในไซต์ฉันจะได้รับ 404 สำหรับทุกสิ่งที่พยายามผ่าน https: // ซึ่งทำให้ฉันคิดว่ากฎการเขียนซ้ำไม่ได้ใช้กับหน้า https ฉันหายไปนี่อะไร มีเงื่อนไข / กฎการเขียนที่ฉันสามารถเพิ่มใน htaccess เพื่อแก้ไขปัญหานี้ได้หรือไม่?

นี่ไม่ใช่ปัญหาที่แก้ไขแล้วในชุมชน Drupal หรือไม่? คนเพิ่งออกจากพื้นที่ผู้ดูแลระบบของพวกเขาไม่ปลอดภัยด้วยรหัสผ่านของผู้ใช้จะถูกส่งในที่ชัดเจน? ฉันพบว่ามันยากที่จะเชื่อ แต่ดูเหมือนว่าไม่มีวิธีการแก้ปัญหาในตัวหรือที่รู้จักกันทั่วไป


คำถามที่ดี. คุณได้อ่านอันนี้? drupal.stackexchange.com/questions/23149/…
undersound

Drupal ควรทำงานได้โดยไม่มีปัญหาทั้ง http และ https ฉันเดาว่าปัญหาของคุณอยู่ในการกำหนดค่า Apache (อาจเป็นไซต์ SSL ที่ชี้ไปที่ DocumentRoot อื่น) คุณช่วยโพสต์การตั้งค่า Apache และ. htaccess ของ Drupal เพื่อการวิเคราะห์เพิ่มเติมได้ไหม
por

@undersound ขอบคุณ ใช่ฉันอ่านแล้ว เราสนใจที่จะรักษาความปลอดภัยงานธุรการทั้งหมดผ่าน HTTPS ไม่ใช่เฉพาะเหตุการณ์การลงชื่อเข้าใช้
KevinL

2
ทางออกที่ดีที่สุดน่าจะช่วยทดสอบและผลักดันแพทช์หลักสองอันที่จำเป็นสำหรับการอนุมัติ พวกเขาทั้งสองมีการปรับปรุงจากสัปดาห์นี้ ...
squarecandy

คำตอบ:


4

ไม่ใช่คำถามที่คุณถาม แต่คำตอบที่ง่ายที่สุดคือคุณควรเปลี่ยนนโยบายของคุณ

แกน "การแฮ็ก" (การปะแก้) และการรันการเผยแพร่ที่ไม่เสถียรนั้นเป็นความจริงของการใช้งานเว็บไซต์

แพทช์ทั้งสองที่จำเป็นสำหรับ securepages จำเป็นต้องทำการรีรีวิวและการปรับปรุงใหม่บ่อยครั้ง มีส่วนร่วมในวงจรนั้นและช่วยให้พวกเขามีเสถียรภาพ


0

ฉันใช้การตั้งค่าต่อไปนี้ดึงสิ่งนี้ออก ... และไม่จำเป็นต้องใช้โมดูลในการดำเนินการ 1) httpd.conf

#APACHE stuff...
Listen 443
NameVirtualHost *:443
Include conf.d/vhosts/*.conf #Need this for multi-site and subdomains

<IfModule mod_header.c>
#enable HSTS
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</IfModule>

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2) conf.d / vhosts / site1.conf

<VirtualHost *:443>
#APACHE stuff...
SSLEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC] #Force www... be careful with subdomains
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

3) settings.php

$base_url = 'https://www.example.com';  // NO trailing slash!

และ voooala !! สิ่งนี้จะทำให้การรับส่งข้อมูล http ของการเดินทางผ่าน https รวมถึงทรัพยากรเช่น js และ css หากคุณต้องการโดเมนย่อยให้แน่ใจว่าได้เพิ่มคำสั่ง ServerAlias ​​ที่เหมาะสมในไฟล์ vhosts


0

ผมใช้โมดูล Ubercart SSLซึ่งเป็นโมดูลที่ยอดเยี่ยมถึงแม้ว่ามันจะน่ากลัวชื่อ คุณไม่จำเป็นต้องเรียกใช้ Ubercartเพื่อใช้ประโยชน์จากโมดูลนี้ซึ่งมีความเสถียรและใช้งานง่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.