# SSL CERTIFICATE_VERIFY_FAILED ผ่าน proxy

> SSL CERTIFICATE_VERIFY_FAILED เมื่อสแครปผ่าน proxy: CA bundles เก่า, โปรแกรมแอนตี้ไวรัสหรือตัวกรองไฟร์วอลล์ที่แทรกแซง, นาฬิกาผิดพลาด แก้ไขแบบปลอดภัยเท่านั้น

- URL: https://crawlrelay.com/th/docs/errors/ssl-certificate-verify-failed/
- อัปเดตล่าสุด: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

ข้อผิดพลาดใบรับรอง TLS ในไคลเอนต์: ข้อความผิดพลาดที่แม่นยำในแต่ละเครื่องมือ สาเหตุที่เป็นไปได้ตามลำดับ และวิธีแก้ไขที่ใช้งานได้

**คำตอบด่วน — SSL: CERTIFICATE_VERIFY_FAILED หมายความว่าอย่างไรกับพร็อกซี?**

**CERTIFICATE_VERIFY_FAILED** หมายถึงไคลเอนต์ของคุณไม่สามารถตรวจสอบใบรับรอง TLS ของเว็บไซต์ได้ ผ่าน CONNECT proxy เช่นเกตเวย์ของ CrawlRelay, TLS ทำงานแบบ end to end ดังนั้น proxy จึงไม่ใช่สาเหตุ ตรวจสอบฝั่งคุณ: CA bundle ที่ล้าสมัย, โปรแกรมแอนตี้ไวรัสหรือตัวกรองไฟร์วอลล์ที่ตรวจสอบ HTTPS, หรือนาฬิการะบบผิดพลาด อย่าซ่อมด้วย verify=False ในสภาพแวดล้อมจริง

## SSL: CERTIFICATE_VERIFY_FAILED แบบสั้นๆ

| คุณลักษณะ | ค่า |
| --- | --- |
| ข้อผิดพลาด | SSL: CERTIFICATE_VERIFY_FAILED |
| ประเภท | ข้อผิดพลาดใบรับรอง TLS ในไคลเอนต์ |
| ส่งโดย | ไลบรารี TLS ของคุณ เมื่อไม่สามารถตรวจสอบใบรับรองของเว็บไซต์ได้ |
| กำหนดไว้ใน | X.509 path validation: RFC 5280; TLS 1.3: RFC 8446 |
| ลองใหม่อีกครั้งไหม? | ไม่ใช่ ให้แก้ไข trust store หรือเครือข่าย |
| ตรวจสอบก่อน | ทดสอบ URL เดียวกันโดยไม่มี proxy บนเครื่องเดียวกัน |

## SSL: CERTIFICATE_VERIFY_FAILED หมายความว่าอย่างไร?

ในระหว่างการจับมือ TLS เว็บไซต์จะส่งใบรับรองแบบมีโซ่ ไคลเอนต์ของคุณตรวจสอบกับรายชื่อหน่วยงานที่เชื่อถือได้ (trust store) และตรวจสอบชื่อกับวันหมดอายุ หากตรวจสอบไม่ผ่านข้อใดข้อหนึ่งจะหยุด

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

## CERTIFICATE_VERIFY_FAILED เป็นอย่างไรใน Python, curl, Node.js และเบราว์เซอร์?

ข้อผิดพลาดเดียวกันนี้แสดงผลแตกต่างกันในแต่ละเครื่องมือ นี่คือข้อความที่ต้องค้นหาในบันทึกของคุณ:

- **Python:** `[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate`
- **Node.js:** `UNABLE_TO_GET_ISSUER_CERT_LOCALLY` หรือ `SELF_SIGNED_CERT_IN_CHAIN`
- **curl:** `curl: (60) SSL certificate problem: unable to get local issuer certificate`
- **เบราว์เซอร์:** `NET::ERR_CERT_AUTHORITY_INVALID`

## อะไรเป็นสาเหตุของ CERTIFICATE_VERIFY_FAILED?

โอกาสสูงสุดอันดับแรก:

- **CA bundle ที่ล้าสมัย** เช่น แพ็กเกจ `certifi` เก่าใน Python
- **การตรวจสอบ HTTPS** โดยโปรแกรมแอนตี้ไวรัส, ไฟร์วอลล์องค์กร หรือ debugging proxy ที่แสดงใบรับรองของตัวเอง
- **นาฬิการะบบผิดพลาด** ที่ทำให้ใบรับรองที่ถูกต้องดูเหมือนหมดอายุหรือยังไม่ถึงวันใช้ได้
- **เว็บไซต์ที่มีโซ่ใบรับรองขาด** เช่น ขาดใบรับรองกลาง
- **อิมเมจคอนเทนเนอร์** ที่ไม่มีแพ็กเกจใบรับรอง CA ของระบบ

## ฉันวินิจฉัย CERTIFICATE_VERIFY_FAILED ทีละขั้นตอนอย่างไร?

1. รันคำขอเดียวกันโดยไม่ใช้ proxy ถ้ายังล้มเหลว แปลว่า proxy ไม่ได้เกี่ยว
2. แสดงผู้อนุมัติใบรับรองด้วย `openssl s_client` หรือ curl `-v`: ถ้าชื่อผู้อนุมัติสัมพันธ์กับแอนตี้ไวรัสหรือไฟร์วอลล์ แปลว่ามีการแทรกแซง
3. ตรวจสอบวันเวลาระบบ
4. อัปเดต CA bundle แล้วทดสอบใหม่

*ทดสอบ URL ที่ล้มเหลวด้วย curl (พอร์ต HTTP, โหมดละเอียด)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## ฉันจะแก้ไข CERTIFICATE_VERIFY_FAILED อย่างไร?

- **อัปเดต `certifi`** (`pip install -U certifi`) หรือแพ็กเกจ CA ของระบบ
- **เพิ่มใบรับรองตรวจสอบของบริษัท** ลงใน trust store หากเครือข่ายของคุณตรวจสอบ HTTPS หรือรัน scraper นอกเครือข่ายนั้น
- **แก้ไขนาฬิกา** ด้วยการซิงค์เวลาเครือข่าย
- **ติดตั้งใบรับรอง CA** ในอิมเมจคอนเทนเนอร์แบบบาง เช่น แพ็กเกจ `ca-certificates`
- **อย่าปิดการตรวจสอบ** ในโค้ดที่ส่งข้อมูลเข้าสู่ระบบหรือเก็บข้อมูลที่สำคัญ

## ฉันควรลองใหม่หลังจาก CERTIFICATE_VERIFY_FAILED ไหม?

อย่าลองใหม่: trust store เดิมจะล้มเหลวเหมือนเดิม แก้ไข trust store, นาฬิกา หรือเส้นทางเครือข่ายก่อนแล้วจึงรันใหม่

## SSL: CERTIFICATE_VERIFY_FAILED มีผลอย่างไรกับ CrawlRelay?

พอร์ต HTTP ของ CrawlRelay ส่งผ่าน HTTPS ด้วย `CONNECT` ดังนั้นใบรับรองที่ไคลเอนต์ตรวจจึงเป็นของเว็บไซต์ หากข้อผิดพลาดปรากฏเฉพาะผ่านเกตเวย์นี้และไม่เกิดโดยตรง ติดต่อฝ่ายสนับสนุนพร้อมชื่อโฮสต์เป้าหมายและข้อความผิดพลาดเต็มเพื่อให้เราตรวจสอบฝั่งออกออก

เกตเวย์: `gw.crawlrelay.com`, พอร์ต 7777 (HTTP, HTTPS ผ่าน CONNECT) และพอร์ต 7778 (SOCKS5). รูปแบบชื่อผู้ใช้: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. ที่เกี่ยวข้อง: [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/th/docs/errors/ssl-wrong-version-number/) · [Connection reset](https://crawlrelay.com/th/docs/errors/connection-reset/) · [คู่มือ Python](https://crawlrelay.com/th/docs/python/).

## SSL: CERTIFICATE_VERIFY_FAILED: คำถามที่นักพัฒนาถาม

### proxy ทำให้เกิดข้อผิดพลาด SSL certificate ได้ไหม?

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

### ใช้ verify=False ปลอดภัยไหมสำหรับการสแครป?

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

### ทำไมถึงล้มเหลวบน Docker แต่ทำงานบนแล็ปท็อปของฉัน?

อิมเมจคอนเทนเนอร์ขนาดเล็กมักไม่มาพร้อมใบรับรอง CA ทำให้ไม่สามารถตรวจสอบใบรับรองได้ ติดตั้งแพ็กเกจ CA ของระบบในอิมเมจ หรือใช้ certifi bundle ใน Python ตรวจสอบด้วยว่านาฬิกาคอนเทนเนอร์ถูกต้อง

## ข้อผิดพลาดพร็อกซีอื่นๆ ในเอกสารอ้างอิงนี้

- [401 Unauthorized vs 407](https://crawlrelay.com/th/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/th/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/th/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/th/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/th/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/th/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/th/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/th/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/th/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/th/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/th/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/th/docs/errors/ssl-wrong-version-number/)

**พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว** พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ [ดูราคา](https://crawlrelay.com/th/pricing/) · [เริ่มต้นอย่างรวดเร็ว](https://crawlrelay.com/th/docs/)

---

CrawlRelay: CrawlRelay คือพร็อกซีเรซิเดนเชียลหมุนเวียนพร้อมพร็อกซีมือถือ 4G/5G สำหรับนักพัฒนา เหมาะกับสแครปเปอร์และระบบจัดการข้อมูล AI: เติมเงินจ่ายตามการใช้งานจาก US$0.50/GB จ่ายด้วยคริปโต ไม่ต้องอัปโหลดบัตรประชาชน ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
