Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> เบราว์เซอร์

แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox

ข้อผิดพลาด SSL_ERROR_RX_RECORD_TOO_LONG เกิดจาก SSL Traffic ไม่ได้ตั้งค่าถูกต้องใน Secure Server ปลายทาง อาจเกิดจาก Proxy ที่ตั้งค่าผิด ไม่อนุญาต SSL Handshake บนพอร์ต 443 ได้ถูกต้อง

แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox

ง่ายๆ คือ Browser ไม่สามารถยืนยันข้อมูลปลอดภัยได้ เพราะ SSL Certificate ไม่ได้ตั้งค่าถูกต้อง พบรายงานเยอะใน Firefox มากกว่าบราวเซอร์อื่น

อ่านบทความนี้ 2 กลุ่ม: 1) ผู้ใช้ทั่วไปที่เข้าถึงเว็บ 2) ผู้ดูแล Server ที่ troubleshoot ฝั่ง Server มีวิธีแก้สำหรับทั้ง 2 กลุ่ม โดยระบุวิธีสำหรับผู้เชี่ยวชาญด้วย "for advanced users"

วิธีที่ 1: เข้าเว็บด้วยโปรโตคอล HTTP

วิธีง่ายที่สุดสำหรับผู้ใช้ทั่วไป: ใช้ HTTP แทน HTTPS HTTPS ต้องการ Secure Handshake และ SSL Certificate หากฝั่ง Server มีปัญหาเรื่อง Secure Mechanism ยังเข้าถึงได้ด้วย HTTP ปกติ

  1. เปิด Browser พิมพ์ที่อยู่เว็บกด Enter Browser มักตั้งโปรโตคอลเป็น HTTPS อัตโนมัติ
  2. แก้ไข Address bar ให้เป็น HTTP

แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox

  1. ลองเข้าถึงเว็บอีกครั้ง ดูว่า Error ยังโผล่หรือไม่

วิธีที่ 2: ปิด Proxy ใน Firefox

ผู้ใช้ส่วนใหญ่ที่เจอปัญหานี้ใช้ Firefox Firefox ทราบว่าก่อให้เกิดปัญหานี้มานาน หลายคนรายงานว่าปิด Proxy ทั้งหมดแก้ปัญหาได้ จำไว้ว่า "auto-detect proxies on this network" ไม่ใช่ "No proxy"

  1. เปิด Firefox คลิกไอคอนเมนูมุมขวาบน เลือก "Options"
    แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox
  2. ไปที่ "Network Proxy" คลิก เลือก "No proxy"
    แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox
  3. Save changes รีสตาร์ท Firefox ตรวจสอบว่าปัญหาแก้หรือไม่

วิธีที่ 3: ปิด Antivirus Software

สาเหตุอาจมาจาก Antivirus รบกวน มีตัวเลือกหลายอย่างที่ปกุป้องโดยตรวจสอบ Network Traffic และ Verify Certificate ทั้งหมด

ในวิธีนี้ ต้อง สำรวจด้วยตนเอง ดูว่า Antivirus ของคุณมีการตั้งค่าบางอย่างที่ให้บริการแบบนี้หรือไม่ เช่น "HTTP scanning in AVG" ปิดการป้องกันแบบนี้ทั้งหมด ลองเข้าถึงเว็บอีกครั้ง

หายังแก้ไม่ได้ สามารถ ปิด Antivirus ทั้งหมด ได้ ดูวิธีปิด Antivirus ในบทความของเรา รีสตาร์ทคอมพิวเตอร์หลังปิด ทดสอบเข้าถึงเว็บได้ไหม

วิธีที่ 4: ปิด TLS 1.3 (สำหรับผู้ใช้ขั้นสูง)

วิธีแก้รอบข้างคือปิด TLS 1.3 ผ่านการตั้งค่า Firefox สามารถกลับคืนค่าได้หากไม่ได้ผล

  1. พิมพ์ "about:config" ใน Address bar ของ Firefox
    แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox
  2. ค้นหา entry "tls.version.max" เปลี่ยนค่าจาก 4 เป็น 3
    แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox
  3. ค่า 4 = TLS 1.3 และ 3 = TLS 1.2 รีสตาร์ท Browser ตรวจสอบว่าปัญหาแก้หรือไม่

วิธีที่ 5: Troubleshooting เพิ่มเติมสำหรับ Firefox Users

นอกจากวิธีข้างต้น ยังลองได้อีก:

  • Clear Cache และอัปเดต Firefox เป็นรุ่นล่าสุด
  • ปิด Add-ons ทั้งหมดของ Firefox
  • Refresh Browser ทั้งหมด (Bookmarks อาจหาย)
  • ตั้งค่า tls.version.max = 0
  • หาทุกวิธ่าล้มเหลว ลองใช้ Alternate Browser เช่น Chrome

วิธีที่ 6: เปลี่ยน Certificate (ผู้ใช้ขั้นสูง)

Workaround ง่ายๆ คือเปลี่ยนค่า Certificate บางอย่างของ Server มีโค้ดตัวอย่าง
แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox

ต้องเปลี่ยน default:443 เป็น example.dev:443

วิธีที่ 7: เปลี่ยนไฟล์ nginx.conf (ผู้ใช้ขั้นสูง)

อีกวิธีคือแก้ nginx.conf สำหรับผู้ใช้ Nginx รันไซต์ หลักการเดียวกัน คือปรับตั้งค่าพอร์ต 443

โค้ดตัวอย่าง:
แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox

ต้องเปลี่ยน listen 443; เป็น listen 443 ssl; และลบบรรทัด "ssl on;" ทดสอบว่าปัญหาแก้หรือไม่

หมายเหตุ: หากต้องการบังคับ phpmyadmin ให้ใช้ SSL/https จะเจอปัญหานี้หากขาดลิงก์นี้ ใช้ a2ensite default-ssl

วิธีที่ 8: ตรวจสอบเพิ่มเติม (ผู้ใช้ขั้นสูง)

นอกจากนี้ ต้องตรวจสอบให้แน่ใจว่า:

  • Port 443 เปิดอยู่ และ Enabled ใน Server พอร์ตมาตรฐานสำหรับ HTTPS
  • หาก SSL ใช้ Non-standard Port Firefox อาจแจ้ง Error ตรวจสอบว่ารันบน Port 443
  • หากใช้ Apache2 ตรวจสอบว่า SSL Port เป็น 443 ทำได้โดยตั้ง httpd.conf ดังนี้:
    แก้ไข: SSL_ERROR_RX_RECORD_TOO_LONG ใน Firefox
  • ตรวจสอบว่า SSL Certificates ไม่หมดอายุ
  • หากใช้ Apache2 เช็ค vhost config มีรายงานว่าเปลี่ยน <VirtualHost> เป็น _default_ แก้ปัญหาได้
  • ตรวจสอบว่ามี SSL Certificate เพียง 1 ต่อ 1 IP ให้แน่ใจว่า SSL ทุกตัวใช้ Dedicated IP ของตัวเอง
  • ใน Apache ตรวจสอบว่า Listen <port> directive ตรงกับ Port ใน VirtualHost directive และ SSL Configuration statements (SSLEngine On, SSLCertificateFile <filename> ฯลฯ) อยู่ใน VirtualHost directive หรือ SSL Config file ของ Server