Safari Redirecting http ไปยัง https (ไม่มีอยู่)


34

Safari บังคับให้เปลี่ยนเส้นทางไปยังเว็บไซต์ https รุ่นที่ฉันเข้าชมก่อนหน้านี้ผ่าน https

อย่างไรก็ตามเว็บไซต์ https ใช้งานไม่ได้อีกต่อไปและไม่มีวิธีป้องกันไม่ให้ฟอร์ม Safari พยายามโหลด

HTTP เปลี่ยนเส้นทางไปยัง HTTPS

นี่คือคำถามเกี่ยวกับ Apple Forums ที่เกี่ยวข้องSafari ทำการเปลี่ยนเส้นทาง http ไปยัง https


เป็นไปได้หรือไม่ที่ HSTS เปิดใช้งานบางแห่งในอดีต?
Max Ried

@ MaxRied ฟังดูเหมือนคำแนะนำที่ดีฉันไม่มีทางรู้ สำหรับการอ้างอิง: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
rjstelling

คำตอบ:


19

หากก่อนหน้านี้ไซต์ได้ระบุให้ Safari ว่าต้องการให้เข้าถึง HTTPS ผ่าน HSTS ( HTTP Strict Transport Security ) เสมอ Safari จะพยายามเปลี่ยนเส้นทางไปยัง HTTPS เสมอ

คุณสามารถล้างแคช HSTS ~/Library/Cookies/HSTS.plistโดยการลบ

โปรดทราบว่า Safari ยังทำการเปลี่ยนเส้นทาง 301 เป็นระยะเวลาหนึ่งและอาจจำเป็นต้องล้างแคช Safari ปกติด้วย: จากเมนูพัฒนา (เปิดใช้งานในการกำหนดค่าตามความชอบ→ขั้นสูง) เลือกแคชว่างเปล่า


ฉันควรเริ่มเขียนคำตอบ ...
Max Ried

10
@grgarside ฉันลองมาหลายครั้งแล้วมันก็ไม่ทำงานอีกต่อไปแล้ว
kushdilip

"การล้างแคช Safari ปกติ" - อย่างไรใช่ไหม?
Wildcard

@ Wildcard ฉันได้แก้ไขคำตอบของฉันด้วยข้อมูลนั้นแล้ว
grg

8

ตั้งแต่ธันวาคม 2560 Google ได้เพิ่ม ".dev" TLD ไปยังรายการ HSTS ที่โหลดไว้ล่วงหน้าสำหรับ Chrome!

Safari ใช้รายการเดียวกัน ดังนั้น Safari จะเพิ่ม * .dev ไปยังรายการ HSTS เสมอ ...

ดูเหมือนว่านักพัฒนาหลายคนจะต้องเปลี่ยน. ต่อท้ายไปอีกคนหนึ่ง :(

โปรดดู: Chrome เพื่อบังคับใช้โดเมน. dev กับ HTTPS ผ่าน HSTS ที่โหลดไว้ล่วงหน้า


1
นี่เป็นการปลุกปั่นความโกรธของฉัน ไม่ควรเป็นเจ้าของ TLD ทั้งหมด มีสิ่งมหัศจรรย์ที่เรียกว่า VPN หรืออินทราเน็ตที่เหมาะสม (PS ความโกรธของฉันพุ่งตรงไปที่ Google ไม่ใช่คำตอบ) :)
Volte

8

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

  1. command + ,
  2. ความเป็นส่วนตัว -> จัดการข้อมูลเว็บไซต์ ...
  3. ค้นหาlocalhost
  4. คลิกลบ

เปลี่ยนhttps://localhostเป็นhttp://localhostในแถบที่อยู่ของคุณแล้วคลิกปุ่มส่งคืน


สิ่งนี้ใช้ได้ไม่เพียงlocalhostแต่กับโดเมนใด ๆ หมายเหตุว่าเพื่อที่จะเข้าถึงโดเมนย่อยคุณต้องลบข้อมูลโดเมนของผู้ปกครอง คือถ้าคุณต้องการเข้าถึงhttp://some.subdomain.somehost.comและเปลี่ยนเส้นทางhttpsคุณต้องค้นหาsomehost.comที่Manage Website Dataหน้านั้นและนำออก
voiger

5

ฉันไม่พบวิธีแก้ไขปัญหาการทำงานใด ๆ แต่สำหรับวิธีแก้ปัญหาให้ใช้ 127.0.0.1 แทน localhost

http://localhost/

http://127.0.0.1/

1

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

127.0.0.1 localhost

จากนั้นใช้ฉันสามารถใช้http: // localhost: 3000เพื่อเข้าถึงโครงการของฉันบนพอร์ต 3000 โดยไม่ต้องใช้ Safari บังคับให้เชื่อมต่อ https

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