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

วิธีแก้ไข "Error Code: ssl_error_handshake_failure_alert" ในเบราวเซอร์

SSL Handshake Error พบบ่อยสำหรับเว็บไซต์ที่ต้องตรวจสอบความถูกต้องของผู้ใช้ (บางครั้งผ่านอุปกรณ์ Cryptographic Hardware หรือ Card) ข้อผิดพลาดแสดงโดยเบราวเซอร์หลักทุกตัว (Firefox, Chrome, Edge ฯลฯ) บน OS เดสก์ท็อปหลัก (Windows, Mac, Linux ฯลฯ) ข้อความทั่วไป:

วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์

SSL Handshake Error คือ ความล้มเหลวในการสื่อสารระหว่าง Server และ Client ด้วยโปรโตคอล SSL สาเหตุอาจมาจาก Client-side หรือ Server-side สาเหตุหลักที่รายงาน:

  • Browser Data เสียหาย (Corrupt Browser Data): Cookies, Cache เสียหาย ทำให้โหลด Certificate ที่เว็บต้องการไม่ได้ ก่อให้เกิด SSL Handshake Issue
  • การตั้งค่าความปลอดภัยของเบราวเซอร์หรือ Java ผิด (Misconfiguration of Browser's or Java Security): หากเบราวเซอร์หรือ Java Security "คิดว่า" เว็บเสี่ยง อาจไม่เปิดเว็บพร้อม SSL Handshake Alert
  • การขัดจังหวะจาก Security Application ของระบบ (Interference from System Security Application): Antivirus/Firewall บล็อกแพ็กเก็ตข้อมูลบางอย่าง (คิดว่เสี่ยง) ทำให้เบราวเซอร์โหลดเว็บไม่ได้ พร้อม SSL Handshake Alert
  • การติดตั้ง Certificate ผิดวิธี (Improper Installation of the Certificate): เว็บบางแห่งต้องการ Certificate ติดตั้งที่เฉพาะเจาะจงใน OS หาก Certificate ไม่อยู่ที่นั้น แต่อยู่ที่อื่น เว็บอาจไม่ตอบสนองเบราวเซอร์ ก่อให้เกิด SSL Handshake Failure Alert

อัปเดตเบราวเซอร์เป็นเวอร์ชันล่าสุด (Update the Browser to the Latest Build)

เบราวเซอร์อาจแสดง SSL_error_handshake_failure_alert หากล้าสมัย นำไปสู่ความไม่เข้ากันได้กับเว็บต่างๆ การอัปเดตเป็นเวอร์ชันล่าสุดอาจแก้ปัญหา สำหรับการอธิบาย จะใช้ Google Chrome เป็นตัวอย่าง แต่ก่อนอื่น หากเว็บที่ทำปัญหาต้องการ Cryptographic Device/Card ระบุตัวตน ให้แน่ใจว่า Driver ของอุปกรณ์ติดตั้งและใช้งานอยู่

  1. เปิด Chrome คลิก 3 จุดแนวตั้งมุมขวาบน → เมนู Chrome
  2. เลือก Settings แผงซ้าย ไปแท็บ About Chrome
  3. แผงขวา ตรวจสอบว่า Google Chrome อัปเดตเป็นเวอร์ชันล่าสุด แล้ว ตรวจสอบว่า SSL Handshake Error หายหรือไม่
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  4. หากไม่หาย และปัญหาเริ่มหลังอัปเดตเบราวเซอร์ ลอง ติดตั้งเวอร์ชันเก่า ดูว่าแก้ Handshake Failure หรือไม่

ลบ Certificate ที่ทำปัญหาใน Certificate Manager ของเบราวเซอร์ (Delete the Problematic Certificate in the Browser's Certificate Manager)

หาก Certificate ของเว็บใน Certificate Manager ของเบราวเซอร์เสียหาย อาจก่อให้เกิด SSL_error_handshake_failure_alert ผู้ใช้แก้ได้โดยลบ Certificate ของเว็บที่ทำปัญหาใน Settings ของเบราวเซอร์ จะอธิบายด้วย Firefox

  1. เปิด Firefox คลิกไอคอน Hamburger (สามเส้น ใกล้มุมขวาบน)
  2. เลือก Settings แผงซ้าย ไปแท็บ Privacy & Security
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. เลื่อนลงจนถึงส่วน Certificates คลิก View Certificates
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  4. ไปแท็บ Your Certificates เลือก Certificate ของเว็บที่ทำปัญหา
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  5. คลิก Delete → Confirm ลบ Certificate หลังจากนั้น ตรวจสอบว่าไม่มี Certificate ของเว็บทำปัญหาในแท็บ Server's และ CA ที่เกี่ยวข้องในแท็บ Authorities
  6. Relaunch Firefox ตรวจสอบว่า SSL Handshake Error หายหรือไม่

หากไม่ได้ผล ลองใช้ เครือข่ายอื่น หรือ ประเภทเครือข่ายอื่น (เช่น เจอปัญหาบน Ethernet ลอง Wi-Fi) ดูว่าแก้หรือไม่

ล้าง Cookies, Cache และ Data ของเบราวเซอร์ (Clear the Browser's Cookies, Cache, and Data)

หาก Cookies, Cache, Data ของเบราวเซอร์เสียหาย อาจก่อให้เกิด SSL Handshake Error การล้าง Cookies, Cache, Data อาจแก้ปัญหา จะอธิบายด้วย Chrome

  1. เปิด Chrome คลิก 3 จุดแนวตั้งมุมขวาบน
  2. Hover More Tools → Clear Browsing Data
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. ในแท็บ Advanced ของหน้าต่างที่ขึ้น คลิก Sign Out (ใกล้ด้านล่าง) เพื่อเก็บข้อมูลใน Google Account
  4. เลือก Time Range: All-Time และ ติ๊กทุกหมวดหมู่
  5. คลิก Clear Data รอเสร็จ Restart ระบบ
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  6. หลังรีสตาร์ท ตรวจสอบว่า SSL_error_handshake_failure_alert หายหรือไม่

ลองใช้เบราวเซอร์อื่น (Try Another Browser)

SSL_error_handshake_failure_alert อาจมาจากบั๊กในเบราวเซอร์ที่ใช้ การใช้เบราวเซอร์อื่นอาจเข้าถึงเว็บที่ทำปัญหาได้โดยไม่มีปัญหา

  1. ดาวน์โหลดและติดตั้ง เบราวเซอร์อื่นบนระบบ (หากยังไม่มี) ควรใช้ เบราวเซอร์ที่ OS แนะนำ (Edge สำหรับ Windows, Safari สำหรับ Mac, Firefox สำหรับ Linux, Chrome สำหรับ Chromebook)
  2. เปิด เบราวเซอร์ตัวที่สอง ตรวจสอบว่าเข้าถึงเว็บได้โดยไม่ก่อให้เกิด SSL Handshake Error หรือไม่

รีเซ็ต Internet Options ของระบบเป็นค่าเริ่มต้น (Reset the System's Internet Options to the Defaults)

บน Windows Internet Options ครอบคลุมการตั้งค่าพื้นฐานมากมายที่ OS และแอปใช้เข้าถึงอินเทอร์เน็ต การตั้งค่า Internet Options ผิด หรือ Certificate Manager ของมันเสียหาย การ Reset Internet Options เป็นค่าเริ่มต้นอาจแก้ปัญหา

  1. คลิก Windows ค้นหาและเปิด Internet Options
  2. ไปแท็บ Advanced คลิก Restore Advanced Settings
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. ในส่วน Reset Internet Explorer Settings คลิก Reset และติ๊ก Delete Personal Settings
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  4. คลิก Reset แล้ว Restart ระบบ
  5. หลังรีสตาร์ท ตรวจสอบว่า SSL Handshake Error ของเบราวเซอร์หายหรือไม่

เพิ่มเว็บไซต์เป็น Trusted ในเบราวเซอร์ (Add the Website as Trusted in the Browser)

หากปัญหายังคง เพิ่มเว็บเป็น Trusted ในเบราวเซอร์อาจช่วยได้ จะแนะนำด้วย Firefox

คำเตือน: ดำเนินการด้วยความเสี่ยงของตัวเอง การเพิ่มเว็บเสี่ยงเป็น Trusted อาจเผยข้อมูล ระบบ และเครือข่ายต่อภัยคุกคาม

  1. เปิด Firefox ไป เว็บที่ทำปัญหา
  2. Copy URL เต็มจาก Address Bar ใส่ใน Address Bar:
    about:config
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. คลิก Accept Risk and Continue
  4. ใน Search Preference Name ใส่:
    tls.insecure_fallback_hosts
  5. คลิกไอคอน Edit ใส่ URL ของเว็บที่ทำปัญหา
  6. คลิกไอคอน Tick (✓) และ Relaunch Firefox
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  7. หลัง Relaunch ตรวจสอบว่าเว็บที่ทำปัญหาเปิดได้โดยไม่ก่อให้เกิด SSL Error หรือไม่ ควรทราบว่าอาจเห็น Popup เตือนสีเหลืองบนเว็บจาก Firefox ว่าไม่ควรกรอกข้อมูลความลับ

แก้ไขการตั้งค่าความปลอดภัยของเบราวเซอร์ (Edit the Browser's Security Settings)

SSL Handshake Error อาจมาจากการตั้งค่าเว็บที่ทำปัญหาไม่ดี การแก้ Security Settings ของเบราวเซอร์อาจช่วยเข้าถึงเว็บได้ จะอธิบายด้วย Firefox

คำเตือน: ดำเนินการด้วยความเสี่ยงของตัวเอง การแก้ Security Settings อาจเผยระบบ ข้อมูล เครือข่าย ต่อภัยคุกคาม

  1. เปิด Firefox ใส่ใน Address Bar:
    about:config
  2. คลิก Accept the Risk and Continue
  3. ใน Search Preference Name ใส่:
    tls.enable_0rtt_data
  4. คลิกปุ่ม Toggle ตั้งค่าเป็น False และ Relaunch Firefox ตรวจสอบว่า SSL Handshake Failure แก้หรือไม่
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์

ติดตั้ง Burp Suite ใหม่ (Reinstall the Burp Suite)

หากองค์กรใช้ Burp Suite ทดสอบ/วิเคราะห์ Web Apps อย่างปลอดภัย การตั้งค่า Burp Suite ผิดอาจก่อให้เกิด SSL Handshake Failure Alert ในกรณีนี้ ติดตั้ง Burp Suite ใหม่อาจช่วยได้

  1. Backup ไฟล์ JAR ของ Burp File เก่า และ Loader
  2. คลิกขวา Windows → Apps & Features
  3. ขยาย Burp Suite → Uninstall
  4. ยืนยัน Uninstall Burp Suite → Restart ระบบ
  5. หลัง Restart ดาวน์โหลดและติดตั้ง Burp Suite เวอร์ชันล่าสุด ตอนติดตั้ง ตรวจสอบว่าติดตั้งบน OS Drive (เช่น C:)
  6. Copy Burp File และ Loader ที่ Backup ไว้ ไป:
    C:\Burp_Suite\jre\bin
  7. คลิก Windows ค้นหา Command Prompt คลิกขวา → Run as Administrator
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  8. Execute คำสั่ง (แทนที่ X ด้วยค่าจริง):
    C:\Burp_Suite\jre\bin\java.exe -javaagent:BurpSuiteLoader_v.XXX.jar -noverify -jar burpsuite_pro_vXXX.jar
  9. เปิดเบราวเซอร์ (เช่น Firefox) ตรวจสอบว่า SSL Handshake Problem แก้หรือไม่

ใช้ Certificate ใน Program Files สำหรับ Gemalto/Thales DIS CMS

หากองค์กรใช้ Gemalto (ปัจจุบันชื่อ Thales DIS) Application/CMS การใช้ Certificate จาก Program Files (64-bit) ไม่ใช่ Program Files (x86) อาจแก้ปัญหา เพราะ 64-bit Client Browser หา Certificate ใน 64-bit Directory ของ Program Files จะอธิบายด้วย Firefox

  1. เปิด Firefox เปิด Menu
  2. เลือก Settings → Privacy & Security
  3. เลื่อนลง คลิก Security Devices (ในส่วน Certificates)
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  4. คลิก Load ใน Module Name พิมพ์:
    Gemalto PKCS#11 Module
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  5. คลิก Browse ไปที่ Path นี้ เลือก gclib.dll:
    C:\Program Files\Gemalto\Classic Client\BIN\gclib.dll
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  6. คลิก Open → OK
  7. Relaunch Firefox ตรวจสอบว่า SSL Handshake Issue แก้หรือไม่

เพิ่ม Exception สำหรับเว็บไซต์ใน Java Security (Add an Exception for the Website in Java's Security)

หากเว็บต้องการ Java บน Client แต Java "คิดว่า" เว็บไม่ปลอดภัย อาจก่อให้เกิด SSL Handshake Error ของเบราวเซอร์ การเพิ่ม Exception สำหรับเว็บใน Java Security อาจช่วยได้

  1. คลิก Windows พิมพ์และเปิด Configure Java
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  2. ไปแท็บ Security คลิก Edit Site List
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. คลิก Add ใส่ URL ของเว็บที่ทำปัญหา
  4. คลิก OK → Restart ระบบ
  5. หลัง Restart ตรวจสอบว่า SSL Error หายหรือไม่

ปิดหรือลบ Antivirus/Firewall ของระบบ (Disable or Uninstall the Antivirus/Firewall of the System)

เบราวเซอร์อาจแสดง SSL Handshake Failure Alert หาก Antivirus ของระบบเปลี่ยนข้อมูลเว็บในลักษณะที่เบราวเซอร์ "คิดว่า" ไม่ปลอดภัย ในกรณีนี้ ปิด Antivirus/Firewall อาจล้าง SSL Handshake Error ได้ มีรายงานว่า Kaspersky ก่อให้เกิดปัญหานี้

คำเตือน: ดำเนินการด้วยความเสี่ยงของตัวเอง การปิด/ลบ Antivirus หรือ Firewall อาจเผยข้อมูล ระบบ เครือข่าย ต่อภัยคุกคาม

ปิด Antivirus/Firewall ของระบบ

  1. Right-click บน Security Product (เช่น ESET) ใน System Tray (อาจต้องแสดงไอคอนซ่อน) → Pause Protection
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  2. ยืนยันปิด Security Application อีกครั้ง Right-click บน Security Product ใน System Tray
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. เลือก Pause Firewall และยืนยันปิด ESET Firewall หากถูกถาม
  4. ตรวจสอบว่าเบราวเซอร์เข้าถึงเว็บที่ทำปัญหาได้โดยไม่ก่อให้เกิด SSL Handshake Error หรือไม่

ลบ Antivirus/Firewall ภาคี 3 (Uninstall the 3rd Party Antivirus/Firewall)

หากปิดไม่ได้ผล ลอง Uninstall Antivirus/Firewall

  1. คลิกขวา Windows → Apps & Features
  2. ขยาย Security Application (เช่น ESET) → Uninstall
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. ยืนยัน Uninstall → Reboot ระบบ
  4. หลัง Reboot ตรวจสอบว่า SSL Handshake Error หายหรือไม่

หากองค์กรใช้ Hardware Firewall Console ให้แน่ใจว่า สายเคเบิลที่ต่อ Hardware Firewall กับระบบ เป็นสายที่ Firewall OEM แนะนำ เพราะสายไม่เข้ากันได้อาจก่อให้เกิด SSL Handshake Failure Alert ในเบราวเซอร์

เพิ่ม Certificate ที่ทำปัญหาใหม่ (Re-Add the Problematic Certificate)

หากเว็บที่ทำปัญหาต้องการ Certificate ติดตั้งบนระบบ (จากอีเมลหรือดาวน์โหลดออนไลน์) และ Certificate ติดตั้งไม่ถูกต้อง การติดตั้ง Certificate ใหม่บนระบบอาจช่วยได้ ก่อนอื่น ดาวน์โหลด/Export Certificate ที่ทำปัญหา

  1. คลิกขวา Windows → Run
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  2. รันคำสั่ง:
    certmgr.msc
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  3. ไปแท็บ Personal → Certificates ตรวจสอบว่า Certificate ที่ทำปัญหาอยู่ที่นั่นหรือไม่ หาก Certificate Issuer ต้องการ Certificate ในแท็บอื่น ให้แน่ใจว่าอยู่ในแท็บที่เกี่ยวข้อง
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  4. หาก Certificate อยู่ในแท็บที่เกี่ยวข้อง ดับเบิลคลิก ตรวจสอบ Properties/Validity
  5. หากทุกอย่างปกติ คลิก Windows ค้นหาและเปิด Internet Options
  6. ไปแท็บ Content คลิก Certificates
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  7. ตรวจสอบว่า Certificate จากเว็บทำปัญหา แสดงใน แท็บที่เกี่ยวข้อง (ปกติคือ Personal)
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  8. ดับเบิลคลิก Certificate ตรวจสอบ Properties/Validity
  9. ตรวจสอบว่า Certificate มี Public Key ที่ถูกต้อง อาจอยู่ในแท็บ Details ของ Certificate Properties
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  10. ไปแท็บ Advanced บน Internet Options ตรวจสอบว่า เปิดใช้ TLS Entries และ ยกเลิกติ๊ก SSL Boxes
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  11. Apply การเปลี่ยนแปลง และ Restart เบราวเซอร์ ตรวจสอบว่า Handshake Failure Error หายหรือไม่

หาก Certificate ไม่อยู่ในแท็บที่ถูกต้องของ Certificate Manager หรือติดตั้งใหม่ไม่ได้ อาจอ้างอิงหน้า Microsoft อย่างเป็นทางการที่อธิบายกระบวนการโดยละเอียด

นำเข้า Certificate เข้า Firefox (Import the Certificate to Firefox)

หากเจอปัญหากับ Firefox จำไว้ว่า Firefox ไม่ใช้ Certificate หลายตัวใน OS Certificate Manager ผู้ใช้อาจต้อง Import Certificate เข้า Firefox เอง

  1. เปิด Firefox เปิด Menu
  2. เลือก Settings → Privacy & Security (แผงซ้าย)
  3. เลื่อนลง คลิก View Certificates
  4. ในแท็บ Your Certificates (หรือแท็บที่ Issuer แนะนำ) คลิก Import → Browse ไปที่ Certificate
    วิธีแก้ไข  Error Code: ssl_error_handshake_failure_alert  ในเบราวเซอร์
  5. Select Certificate → Apply การเปลี่ยนแปลง
  6. Relaunch Firefox ตรวจสอบว่า SSL Handshake Issue แก้หรือไม่

หากปัญหายังคง ติดต่อ เว็บไซต์ที่ทำปัญหา ตรวจสอบว่า Security Settings ของพวกเขาทำงานถูกต้องหรือไม่ หากโครงสร้างพื้นฐานขององค์กรใช้อุปกรณ์เก่า อาจใช้ OS เก่า (เช่น XP) ใน VM เพื่อเข้าถึงอุปกรณ์ที่ทำปัญหา

แนวทางสำหรับปัญหาฝั่ง Server (Guidelines for Server-Related Issues)

เนื่องจากไม่สามารถครอบคลุมสาเหตุฝั่ง Server ได้ทั้งหมด (เครื่องต่างๆ อุปกรณ์ต่างๆ แอปต่างๆ) นี่คือแนวทางจากผู้ใช้ที่รายงานว่าช่วยล้าง Handshake Error:

  1. ตรวจสอบว่า ลบ ใน Server Configuration ช่วยได้หรือไม่:
    SSLVerifyClient require SSLVerifyDepth 10
  2. หากใช้ Apache ตรวจสอบว่า ตั้ง SSLCACertificatePath เป็น ~~~~~~/ca/certs/ca.cert.pem และเปลี่ยน SSLVerifyDepth 1 เป็น SSLVerifyDepth 10 แล้ว เปลี่ยน Client Certificates เป็น PEM (จาก PFX) ตรวจสอบว่า SSL Issue แก้หรือไม่
  3. ตรวจสอบว่า สร้าง Certificate ใหม่ด้วย UTF8Stringsfor (ไม่ใช่ PrintableStringsfor) ช่วยแก้ Handshake Issue หรือไม่
  4. หากองค์กรใช้ SAP Cloud Connector ให้ Exit Cloud Connection เปิดไฟล์ props.ini เพิ่มบรรทัดต่อไปนี้ในส่วน #jvm section ตรวจสอบว่าแก้ SSL Problem หรือไม่:
    -Djdk.tls.server.protocols=TLSv1.2
  5. ตรวจสอบว่า การตั้งค่า Server ให้ใช้ Two-way TLS ช่วยล้าง Handshake Error หรือไม่