วิธีเปลี่ยนเส้นทางจาก HTTPS ไปยัง HTTP ก่อนเกิดข้อผิดพลาดที่เซิร์ฟเวอร์


10

ฉันเคยใช้งานเว็บไซต์ที่มีใบรับรอง SSL แต่หยุดใช้ใบรับรอง SSL ปัญหาคือลิงก์ภายนอกส่วนใหญ่ไปยังเว็บไซต์ใช้คำนำหน้า https: //

ฉันได้ลอง https: // ไปยัง http: // การเปลี่ยนเส้นทางในไฟล์. htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

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

มีวิธีใดบ้างที่จะอนุญาตให้ลิงค์ขาเข้าถูกเปลี่ยนเส้นทางอย่างเหมาะสม?


1
SSL ถูกเจรจาก่อนที่จะมีการร้องขอ HTTP เกิดขึ้นเพราะฉันคิดว่าคุณรู้แล้ว ฉันคิดว่าคุณจะมีปัญหาในการทำให้สิ่งนี้ทำงานเหมือนที่คุณต้องการ แต่ฉันลงคะแนนให้โยกย้ายไปยัง ServerFault.com ในกรณีที่มีใครบางคนมีคำตอบที่ดีกว่า
Michael

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

คำตอบ:


16

ข้อแตกต่างระหว่าง http และ https คือคำขอ https จะถูกส่งผ่านการเชื่อมต่อที่เข้ารหัส ssl การเชื่อมต่อที่เข้ารหัส ssl จะต้องสร้างขึ้นระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ก่อนที่เบราว์เซอร์จะส่งคำขอ http

คำขอ HTTP นั้นเป็นคำขอ HTTP ที่ส่งผ่านการเชื่อมต่อที่เข้ารหัส SSL หากเซิร์ฟเวอร์ปฏิเสธที่จะสร้างการเชื่อมต่อที่เข้ารหัส SSL แล้วเบราว์เซอร์จะไม่มีการเชื่อมต่อเพื่อส่งคำขอมากกว่า เบราว์เซอร์และเซิร์ฟเวอร์จะไม่มีวิธีพูดคุยกัน เบราว์เซอร์จะไม่สามารถส่ง URL ที่ต้องการเข้าถึงและเซิร์ฟเวอร์จะไม่สามารถตอบสนองด้วยการเปลี่ยนเส้นทางไปยัง URL อื่น

ดังนั้นนี่เป็นไปไม่ได้ หากคุณต้องการตอบสนองต่อลิงค์ https คุณต้องมีใบรับรอง SSL


4

ไม่หากเป็นไปได้ที่จะเปลี่ยนเส้นทางจาก https ไปยัง http โดยไม่มีใบรับรองจริงมันจะเป็นข้อบกพร่องด้านความปลอดภัยที่สำคัญ

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

ทางออกเดียวที่ฉันเห็นคือได้รับใบรับรองราคาถูกจากนั้นทำการเปลี่ยนเส้นทางปกติจากไซต์ HTTPS (ซึ่งผู้ใช้ไม่สามารถเข้าถึงได้หากไม่มีใบรับรองที่ถูกต้อง) ไปยังไซต์ปกติสำหรับลิงก์ภายนอกเหล่านั้น


ใช่มันจะดีกว่าวิธีนี้ น่าเสียดายที่ไม่มีวิธีการตั้งค่าการแทนที่ที่ได้รับอนุมัติในฐานะเจ้าของไซต์

-2

คุณควรสร้างใน. htaccess ของคุณ

ErrorDocument 500 http://anotherserer.com/errorPage.php

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