Không cần KYC — không cần ID, không selfie, không giấy tờ. Thanh toán bằng crypto: BTC, USDT, USDC, ETH, SOL, LTC
Ngôn ngữ: Tiếng Việt
Bắt đầu ngay

Tham khảo lỗi proxy · Lỗi kết nối và TLS

SSL CERTIFICATE_VERIFY_FAILED qua proxy

Lỗi chứng chỉ TLS trong client: thông báo chính xác trong từng công cụ, nguyên nhân có thể theo thứ tự, và cách sửa hiệu quả.

Cập nhật lần cuối: · 5 phút đọc

Trả lời nhanh

SSL: CERTIFICATE_VERIFY_FAILED nghĩa là gì với proxy?

CERTIFICATE_VERIFY_FAILED có nghĩa là client của bạn không thể xác thực chứng chỉ TLS của website. Qua proxy CONNECT như cổng CrawlRelay, TLS chạy đầu cuối nên proxy không gây lỗi. Hãy kiểm tra bên bạn: bộ CA lỗi thời, phần mềm diệt virus hoặc tường lửa công ty kiểm tra HTTPS, hoặc đồng hồ hệ thống sai. Không bao giờ sửa bằng verify=False trong môi trường sản xuất.

SSL: CERTIFICATE_VERIFY_FAILED nhìn nhanh

LỗiSSL: CERTIFICATE_VERIFY_FAILED
LoạiLỗi chứng chỉ TLS trong client
Gửi bởiThư viện TLS của bạn khi không thể xác thực chứng chỉ website
Định nghĩa tạiX.509 path validation: RFC 5280; TLS 1.3: RFC 8446
Thử lại?Không. Hãy sửa kho tin cậy hoặc mạng
Kiểm tra trước tiênThử URL giống y như vậy mà không qua proxy trên cùng máy

SSL: CERTIFICATE_VERIFY_FAILED nghĩa là gì?

Trong quá trình bắt tay TLS, website gửi một chuỗi chứng chỉ. Client của bạn kiểm tra chuỗi này với danh sách cơ quan quản lý đáng tin cậy, kho tin cậy, và kiểm tra tên cũng như thời hạn. Nếu bất kỳ kiểm tra nào thất bại, nó sẽ dừng.

Với kết nối tún kết nối (CONNECT tunnel), proxy truyền bắt tay nguyên vẹn nên chứng chỉ bạn thấy là chứng chỉ của website thật. Thông thường nguyên nhân là phần mềm kiểm tra chèn thêm chứng chỉ của nó, hoặc kho tin cậy lỗi thời trên máy bạn.

CERTIFICATE_VERIFY_FAILED trông như thế nào trong Python, curl, Node.js và trình duyệt?

Cùng một lỗi nhưng hiển thị khác nhau trên mỗi công cụ. Đây là các thông báo bạn nên tìm trong nhật ký của mình:

  • Python: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
  • Node.js: UNABLE_TO_GET_ISSUER_CERT_LOCALLY hoặc SELF_SIGNED_CERT_IN_CHAIN
  • curl: curl: (60) SSL certificate problem: unable to get local issuer certificate
  • Trình duyệt: NET::ERR_CERT_AUTHORITY_INVALID

Nguyên nhân gây ra CERTIFICATE_VERIFY_FAILED là gì?

Khả năng đầu tiên là:

  • Bộ CA lỗi thời, ví dụ gói certifi cũ trong Python.
  • Kiểm tra HTTPS bởi phần mềm diệt virus, tường lửa công ty hoặc proxy gỡ lỗi, chúng dùng chứng chỉ riêng.
  • Đồng hồ hệ thống sai khiến chứng chỉ hợp lệ trông như hết hạn hoặc chưa hiệu lực.
  • Website có chuỗi chứng chỉ bị lỗi, thiếu chứng chỉ trung gian.
  • Ảnh container không cài gói chứng chỉ CA của hệ thống.

Làm sao để chẩn đoán CERTIFICATE_VERIFY_FAILED từng bước?

  1. Thực hiện yêu cầu mà không qua proxy. Nếu cũng lỗi, proxy không phải nguyên nhân.
  2. In ra nhà cấp chứng chỉ bằng openssl s_client hoặc curl -v: nhà cấp trùng tên phần mềm diệt virus hoặc tường lửa là có chặn.
  3. Kiểm tra ngày giờ hệ thống.
  4. Cập nhật bộ CA rồi thử lại.
Kiểm tra URL bị lỗi với curl (cổng HTTP, chi tiết)
# 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:[email protected]: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

Làm sao để sửa CERTIFICATE_VERIFY_FAILED?

  • Cập nhật certifi (pip install -U certifi) hoặc gói CA hệ thống của bạn.
  • Thêm chứng chỉ kiểm tra của công ty vào kho tin cậy nếu mạng yêu cầu, hoặc chạy scraper ngoài mạng đó.
  • Sửa lỗi đồng hồ bằng đồng bộ thời gian mạng.
  • Cài chứng chỉ CA vào ảnh container gọn nhẹ, ví dụ gói ca-certificates.
  • Không tắt xác thực trong mã gửi thông tin đăng nhập hoặc lấy dữ liệu quan trọng.

Có nên thử lại sau CERTIFICATE_VERIFY_FAILED không?

Không thử lại: kho tin cậy giống vậy sẽ lỗi tương tự. Sửa kho tin cậy, đồng hồ hoặc đường mạng rồi chạy lại.

SSL: CERTIFICATE_VERIFY_FAILED áp dụng thế nào với CrawlRelay?

Cổng HTTP của CrawlRelay tạo tún HTTPS với CONNECT nên chứng chỉ client kiểm tra là chứng chỉ website gửi. Nếu lỗi chỉ còn qua cổng này mà không có lỗi khi bỏ qua, liên hệ hỗ trợ kèm hostname và lỗi đầy đủ để chúng tôi kiểm tra đầu ra.

Gateway: gw.crawlrelay.com, cổng 7777 (HTTP, HTTPS qua CONNECT) và cổng 7778 (SOCKS5). Định dạng tên người dùng: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Tham khảo liên quan: SSL: WRONG_VERSION_NUMBER · Kết nối bị đặt lại · Hướng dẫn Python.

SSL: CERTIFICATE_VERIFY_FAILED: các câu hỏi thường gặp của lập trình viên

Proxy có thể gây lỗi chứng chỉ SSL không?

Proxy chặn có thể gây lỗi vì nó dùng chứng chỉ riêng. Proxy CONNECT không thể gây lỗi vì nó chỉ chuyển byte đã mã hóa, không thấy bắt tay. Thử cùng yêu cầu không qua proxy: nếu lỗi vẫn còn, nguyên nhân do máy hoặc mạng bạn.

Kiểm tra verify=False có an toàn cho việc quét không?

Không được dùng verify=False để sửa. Nó che giấu chặn và chuỗi chứng chỉ hỏng, kẻ tấn công trên đường truyền có thể đọc hoặc sửa dữ liệu bạn gửi, kể cả token và cookie. Chỉ dùng cho thử nhanh trên máy, không dùng trong công việc tự động hoặc có thông tin đăng nhập.

Tại sao lỗi chỉ xảy ra trong Docker còn laptop thì không?

Ảnh container gọn nhẹ thường không có chứng chỉ CA nên không thể xác thực. Hãy cài gói CA hệ thống trong ảnh hoặc dùng gói certifi trong Python. Cũng kiểm tra đồng hồ container chính xác.

Các lỗi proxy khác trong tài liệu tham khảo này

Mã trạng thái HTTP

Lỗi trình duyệt và client

Lỗi kết nối và TLS

Proxy dân cư với tài liệu bao gồm các trường hợp lỗi

CrawlRelay proxy dân cư từ 0,50 US$/GB, lưu lượng không bao giờ hết hạn.

Từ 0,50 US$/GB · không cần KYC

Bắt đầu ngay