Score:1

ย้อนกลับพร็อกซีและเติมข้อความอัตโนมัติด้วยเนื้อหาแบบผสม

ธง sa

ฉันมีการกำหนดค่า apache ด้วยพร็อกซีย้อนกลับ (IP ของเซิร์ฟเวอร์นี้: 192.168.1.82) เพื่อจัดการเซิร์ฟเวอร์ D9 ใหม่ของฉัน:

192.168.1.82 : 443 ถูกส่งไปยัง 192.168.1.87 เป็น HTTP(80)

<VirtualHost *:443>
    ServerName www.mydomain.be
    ServerAlias mydomain.be
    NameVirtualHost www.mydomain.be

    ProxyPreserveHost On
    ProxyPass / http://192.168.1.87:80/
    ProxyPassReverse / http://192.168.1.87/
    SSLProxyCheckPeerCN Off
    SSLProxyCheckPeerName Off
    SSLProxyVerify none
    ...
</VirtualHost>

ฉันคิดว่ามันเรียกว่าการยุติ SSL

192.168.1.82 : 80 ถูกเปลี่ยนเส้นทางเป็น https (443)

<VirtualHost *:80>
    ServerName www.mydomain.be
    Redirect permanent / https://www.mydomain.be/
</VirtualHost>

192.168.1.87 : การตั้งค่า.php

$settings['reverse_proxy'] = จริง;
$settings['reverse_proxy_addresses'] = [
  '192.168.1.82',
];
$_SERVER['HTTPS'] = 'เปิด';
$settings['ssl'] = จริง;

น่าเสียดายที่ฟีเจอร์เติมข้อความอัตโนมัติของฟิลด์อ้างอิงเอนทิตีร้องขอจุดสิ้นสุดที่ไม่ใช่ https (ไม่ปลอดภัย) (เนื้อหาแบบผสม):

http://www.mydomain.be/fr/entity_reference_autocomplete/node/default:node/3veI...I?q=t

ฉันจะทำอย่างไรเพื่อบังคับ https... ฉันจะยอมรับการแฮ็กที่น่าเกลียดที่สุดหากมันได้ผล (ใช่ ฉันอยู่นี่)

การทดสอบ 1: ProxyPass https แทน http [ใช้ไม่ได้ ดูด้านล่าง]

ฉันได้ปรับโฮสต์เสมือน 82 รายการดังต่อไปนี้

SSLProxyEngine เปิดอยู่
พร็อกซีพาส / https://192.168.1.87/
ProxyPassReverse / https://192.168.1.87/

=>คราวนี้ฉันไม่มีปัญหาเรื่องเนื้อหาผสม แต่ฉันมี ERR_TOO_MANY_REDIRECTS อีกครั้งสำหรับจุดสิ้นสุดการเติมข้อความอัตโนมัติของเอนทิตีนี้

การทดสอบ 2: แฮ็ค Symfony\Component\HttpFoundation\Request::isSecure()

นี่คือฟังก์ชัน isSecure() ใหม่ของฉัน:

ฟังก์ชั่นสาธารณะ isSecure(){
  กลับ TRUE;
}

เมื่อทำสิ่งนี้ URL ที่เติมข้อความอัตโนมัติจะใช้ https แต่คราวนี้ฉันได้ ERR_TOO_MANY_REDIRECTS

รับ https://www.mydomain.be/fr/entity_reference_autocomplete/node/default%3Anode/3ve...I?q=T net::ERR_TOO_MANY_REDIRECTS

ฉันไม่รู้จริงๆว่ามันมาจากไหน

Kevin avatar
in flag
คุณได้ลองบังคับใช้ในระดับ htaccess แล้วหรือยัง
Baud avatar
sa flag
ความคิดที่ดี: จะทำอย่างไร? ขอบคุณมากล่วงหน้าสำหรับคำแนะนำ !!!
Kevin avatar
in flag
https://linuxize.com/post/redirect-http-to-https-in-apache/
Baud avatar
sa flag
@kevin: นี่ไม่ใช่การเปลี่ยนเส้นทาง https นี่คือการสิ้นสุด SSL: 82 กำลังจัดการการเข้ารหัสและส่งผลลัพธ์ (ProxyPass) ไปที่ 87 เป็น http ธรรมดา การตั้งค่าของฉันดูดีเกือบทุกอย่างเพราะทุกอย่างทำงานได้ยกเว้นเนื้อหาแบบผสม ฉันไม่รู้ว่านี่เป็นปัญหาของ Drupal หรือปัญหาของ Apache
Score:1
ธง in

ไฟล์ htaccess ใน Drupal ควรบังคับให้ทราฟฟิกทั้งหมดเป็น HTTPS มีความคิดเห็นบางอย่างในไฟล์ แต่สิ่งนี้ควรใช้งานได้ (ใช้ในหลายโครงการ):

  # บังคับให้การรับส่งข้อมูลทั้งหมดเป็น HTTPS ยกเว้นอินสแตนซ์ในเครื่อง
  RewriteCond ลด %{HTTPS}
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} !^local\.dev\.domain$ [NC]
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]




  # แก้ไข RewriteBase หากคุณใช้ Drupal ในไดเร็กทอรีย่อยหรือใน
  # VirtualDocumentRoot และกฎการเขียนใหม่ทำงานไม่ถูกต้อง
  # ตัวอย่างเช่น หากไซต์ของคุณอยู่ที่ http://example.com/drupal uncomment และ
  # แก้ไขบรรทัดต่อไปนี้:
  # RewriteBase /drupal
  #
  # หากไซต์ของคุณทำงานใน VirtualDocumentRoot ที่ http://example.com/
  # ยกเลิกการแสดงความคิดเห็นบรรทัดต่อไปนี้:
  # RewriteBase /

บรรทัดที่สามเป็นทางเลือก - มันจะยกเว้นสภาพแวดล้อม dev ในเครื่องจากการเขียนใหม่ หากคุณใช้ SSL ภายในเครื่อง คุณสามารถละเว้นบรรทัดนั้นได้

หาก Apache ให้บริการคำขอทั้งหมด มันจะผ่านกฎเหล่านี้ ประเมินและเขียนใหม่

คุณสามารถทดสอบกฎได้ที่นี่: https://htaccess.madewithlove.com/

นี่คือการทดสอบ: https://htaccess.madewithlove.com?share=69ce1303-b1af-4041-aecf-a32f2ecd1bfb

ป้อนคำอธิบายรูปภาพที่นี่

Baud avatar
sa flag
ขอบคุณมาก ฉันได้เพิ่ม 4 บรรทัดที่ส่วนท้ายของไฟล์ drupal เริ่มต้นไม่สำเร็จ: https://htaccess.madewithlove.com?share=1cbb4094-19ed-4407-96a3-07c50a159c68
Kevin avatar
in flag
ลำดับมีความสำคัญใน htaccess ลองใช้หลังจากบรรทัดความคิดเห็นนี้ `# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]`
Kevin avatar
in flag
ฉันอัปเดตคำตอบของฉันเพื่อให้คุณเห็นว่ากฎควรไปที่ใด ดูผลลัพธ์ใหม่: https://htaccess.madewithlove.com?share=e8e28846-517d-42cf-bc84-d46a736bdd62
Baud avatar
sa flag
ขออภัย ฉันได้รับ ERR_TOO_MANY_REDIRECTS
Baud avatar
sa flag
นี่เป็นเพราะ https ถูกส่งต่อไปยังเซิร์ฟเวอร์ 87 เป็น http โดยเซิร์ฟเวอร์ apache ของฉัน 82... apache 87 ของฉันกำลังจัดการพอร์ต onlt 80
Baud avatar
sa flag
ฉันได้เพิ่มรายละเอียดเพิ่มเติมในคำถามของฉัน
Score:0
ธง cn

ลองตั้งค่าส่วนหัว X-Forwarded-* ใน Apache reverse proxy:

<โฮสต์เสมือน *:443>
    ชื่อเซิร์ฟเวอร์ www.mydomain.be
    ServerAlias ​​mydomain.be
    NameVirtualHost www.mydomain.be

    ProxyPreserveHost เปิด
    พร็อกซีพาส / http://192.168.1.87:80/
    ProxyPassReverse / http://192.168.1.87/

    RequestHeader ตั้งค่า X-Forwarded-Proto "https"
    RequestHeader ตั้งค่า X-Forwarded-Port "443"

นี่คือส่วนหัวที่การกำหนดค่าพร็อกซีย้อนกลับใน settings.php ต้องการ

คุณสามารถตรวจสอบการมีอยู่ของส่วนหัวได้ที่ www.mydomain.be/admin/reports/status/php ในส่วน ข้อมูลส่วนหัว HTTP


ในการตั้งค่าดังกล่าวโดยใช้ส่วนหัว X-Forward-* เป็นวิธีการทั่วไปในการอนุญาตให้ Drupal สร้างลิงก์ที่สมบูรณ์ด้วยโปรโตคอลที่ถูกต้องเพื่อหลีกเลี่ยงข้อผิดพลาดของเนื้อหาผสม

อย่างไรก็ตาม หน้า Drupal สามารถสร้างได้อย่างสมบูรณ์ด้วยลิงก์สัมพัทธ์ และนี่คือวิธีการตั้งค่า Drupal แบบสำเร็จรูป รวมถึงช่องเติมข้อความอัตโนมัติหลัก คุณจึงตรวจสอบเส้นทางการเติมข้อความอัตโนมัติในรหัสร่วม/รหัสที่กำหนดเองและลบออกได้ แน่นอน ตัวเลือกที่จะทำให้พวกเขาสัมพันธ์กัน


กำลังเปลี่ยนเส้นทาง

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

Baud avatar
sa flag
ดูดีมาก!!! ฉันจะทดสอบเย็นนี้ ... ฉันรอไม่ไหวแล้ว
4uk4 avatar
cn flag
ตกลง เมื่อทำการทดสอบ ให้ตรวจสอบเอาต์พุต phpinfo() ของไซต์ Drupal ก่อนและหลังการเปลี่ยนแปลง ดูการแก้ไข
Baud avatar
sa flag
ขออภัย วิธีนี้ใช้ไม่ได้ (ข้อมูล: ส่วนหัวถูกตั้งค่าในหน้าสถานะ)=> ฉันได้รับ `ERR_TOO_MANY_REDIRECTS` สำหรับการเติมข้อความอัตโนมัติ นอกจากนี้ยังมี `X-Forwarded-For` ซึ่งตั้งค่าเป็น `192.168.1.1` ไม่ทราบว่าควรเป็นเช่นนี้หรือไม่
4uk4 avatar
cn flag
นี่คือ IP ไคลเอนต์ คุณต้องการสิ่งนี้เช่นกัน Apache ตั้งค่าส่วนหัวนี้เป็นค่าเริ่มต้น แต่เกิดอะไรขึ้นกับทั้งสองที่ฉันแนะนำ ขาดหายไปก่อนและปัจจุบันหลัง? จากนั้นลบแฮ็กอื่นๆ ล้างแคชทั้งหมด รวมถึงแคชของเบราว์เซอร์ด้วย รีสตาร์ทเซิร์ฟเวอร์ทั้งหมดแล้วลองอีกครั้ง
Baud avatar
sa flag
`X-Forwarded-Proto` ถูกตั้งค่าเป็น `https` และ `X-Forwarded-Port` ถูกตั้งค่าเป็น 443 ตามที่แสดงโดย `phpinfo()`
Baud avatar
sa flag
คุณรู้วิธีติดตามการเปลี่ยนเส้นทางที่ "มากเกินไป" หรือไม่ มันเป็นของ Apache หรืออาจเป็นปัญหาของ Drupal?
4uk4 avatar
cn flag
มีการเปลี่ยนเส้นทางมากเกินไปในหัวข้อนี้ คุณไม่จำเป็นต้องแก้ไขจุดบกพร่องของปัญหาเนื้อหาผสม คุณสามารถเชื่อมต่อเบราว์เซอร์กับพร็อกซีผ่าน https ได้โดยพิมพ์ลงในแถบที่อยู่ แก้ไขจุดบกพร่องของการเปลี่ยนเส้นทาง http->https บนพร็อกซีขอบเมื่อมีอะไรทำงาน จากนั้นให้เริ่มด้วย 302 ที่ไม่ถาวร
Baud avatar
sa flag
ฉันอ่านความคิดเห็นล่าสุดของคุณเป็น 10 ครั้งแล้ว แต่ฉันไม่เข้าใจ... มันเป็นความลับอย่างสมบูรณ์สำหรับฉัน คุณช่วยเขียนไอเดียของคุณลงในคำตอบได้ไหม การกำหนดค่า Apache ทั้งหมดของฉันอยู่ที่นี่ในโพสต์ ไม่มีการเปลี่ยนเส้นทางอื่นใดนอกจากการเปลี่ยนเส้นทาง http ไปยัง https ฉันไม่รู้ว่า "พร็อกซี Edge" คืออะไร
4uk4 avatar
cn flag
เพื่อให้ชัดเจน คุณต้องลบรหัสการเปลี่ยนเส้นทางและเริ่มต้นใหม่ การเปลี่ยนเส้นทางถาวรนั้นแก้ไขจุดบกพร่องได้ยากมาก (เป็นสิ่งที่น่ารำคาญที่สุดที่ฉันรู้) ในภายหลัง (ไม่เกี่ยวข้องกับปัญหา) คุณสามารถเพิ่มการเปลี่ยนเส้นทางไปยังพร็อกซีย้อนกลับ (พร็อกซีบนขอบไปยังไคลเอนต์) เพื่อเปลี่ยน http เป็น https ในแถบที่อยู่โดยอัตโนมัติ
Baud avatar
sa flag
ขอบคุณ ฉันจะลบการเปลี่ยนเส้นทางอย่างถาวรในเย็นวันนี้ (นี่คือไซต์ทดสอบที่ใช้งานได้ในขณะนี้... ฉันสามารถทำให้มันใช้งานได้โดยเปลี่ยนหมายเลขพอร์ตและเปลี่ยนเส้นทางการรับส่งข้อมูล [โดยใช้พอร์ตนี้] ไปยังเซิร์ฟเวอร์ 87 ของฉันด้วยของฉัน ไฟร์วอลล์... ผู้คนตกลงที่จะใช้พอร์ตอื่นสำหรับไซต์ทดสอบ) แต่ฉันสามารถทำงานได้เฉพาะในตอนเย็นเท่านั้น...
Baud avatar
sa flag
I have removed ALL the config from the edge server except the proxy one described at the begining of this question. I have replaced the .htaccess by the original ones and I still get the too many redirect. How to know from where it is coming?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา