Cách xử lý chi tiết lỗi cURL error 60: SSL certificate problem trong WordPress

Những điểm cần nắm

 

  • Lỗi này phản ánh việc hệ thống chưa đồng bộ giữa mã nguồn và môi trường server

 

  • Bản chất là lỗi xác minh chứng chỉ SSL khi kết nối HTTPS

 

  • Thường xuất hiện với 2 dạng: “certificate has expired” và “unable to get local issuer certificate”

 

  • Hay gặp khi update WordPress, plugin hoặc gọi API bên ngoài

 

  • Nguyên nhân chính liên quan đến CA Bundle, cấu hình PHP hoặc phiên bản cURL

 

  • Có nhiều cách xử lý: cập nhật chứng chỉ, cấu hình lại php.ini hoặc xử lý ở cấp server

 

Lỗi cURL error 60 trong WordPress là gì

 

Đây là lỗi xảy ra khi WordPress không xác thực được chứng chỉ SSL từ máy chủ bên ngoài. Khi đó, hệ thống sẽ chặn kết nối HTTPS nhằm đảm bảo an toàn.

 

Hai thông báo phổ biến:

 

  • certificate has expired

 

  • unable to get local issuer certificate

 

Khi gặp lỗi này, các chức năng như cập nhật plugin, theme hoặc gọi API sẽ bị gián đoạn.

 

cURL,  SSL, WordPress

 

Các thông báo lỗi phổ biến

 

certificate has expired

 

Thông báo này xuất hiện khi chứng chỉ từ phía server đích đã hết hạn. Trường hợp phổ biến là do thay đổi chuỗi chứng chỉ của Let’s Encrypt (từ 01/10/2021) khiến nhiều hệ thống cũ không còn tương thích.

 

unable to get local issuer certificate

 

Lỗi này xảy ra khi server WordPress không có hoặc không tìm thấy file CA Bundle hợp lệ để xác thực SSL.

 

cURL,  SSL, WordPress

 

Khi nào thường gặp lỗi này

 

Trong quá trình vận hành WordPress, bạn sẽ dễ gặp lỗi trong các trường hợp:

 

  • Khi kiểm tra và cập nhật WordPress core, plugin hoặc theme

 

  • Khi kết nối tới API bên ngoài như TinyPNG, PayPal, Mailchimp

 

  • Khi crawl sitemap (ví dụ dùng LiteSpeed Cache có thể báo lỗi sitemap không hợp lệ)

 

Nguyên nhân gây ra lỗi

 

CA Bundle lỗi thời hoặc sai

 

WordPress sử dụng danh sách chứng chỉ gốc (CA) để xác thực SSL. Nếu file này cũ hoặc bị lỗi, hệ thống sẽ không xác minh được chứng chỉ.

 

Server đích dùng chứng chỉ tự ký

 

Một số API sử dụng SSL self-signed nên không được hệ thống mặc định tin cậy.

 

Sai quyền hoặc sai đường dẫn

 

Server không có quyền truy cập file chứng chỉ hoặc cấu hình đường dẫn sai khiến việc xác thực thất bại.

 

Phiên bản cURL quá cũ

 

Nếu cURL trên server đã lỗi thời, nó có thể không hỗ trợ các chuẩn SSL mới.

 

Cách khắc phục lỗi cURL error 60

 

Cập nhật CA Bundle thủ công

 

Nếu không thể nâng cấp toàn hệ thống, bạn có thể cập nhật thủ công:

Bước 1: Tải file mới tại
 
https://curl.se/ca/cacert.pem
 
Bước 2: Truy cập File Manager hoặc FTP
 
Bước 3: Vào thư mục:
 
wp-includes/certificates/
 
Bước 4:
 
Backup file ca-bundle.crt cũ
 
Đổi tên file cacert.pem thành ca-bundle.crt
 
Upload và ghi đè
 

Sau đó kiểm tra lại bằng cách update plugin.

 

Cấu hình lại php.ini hoặc .user.ini

 

Nếu server trỏ sai đường dẫn chứng chỉ:

 

  • Bước 1: Lưu file cacert.pem vào server

 

  • Bước 2: Mở file php.ini

 

  • Bước 3: Cập nhật:

 
curl.cainfo = "/duong-dan/cacert.pem"

openssl.cafile = "/duong-dan/cacert.pem"
 
  • Bước 4: Restart webserver và PHP

 

Cập nhật chứng chỉ ở cấp server

 

Nếu bạn có quyền root (Ubuntu/Debian):


 
sudo apt-get update

sudo apt-get install --reinstall ca-certificates
 

Sau đó restart dịch vụ:


 
sudo systemctl restart nginx

sudo systemctl restart apache2
 

Cách này giúp hệ điều hành cập nhật toàn bộ chứng chỉ gốc mới nhất.

 

Tắt kiểm tra SSL (tạm thời)

 

Chỉ nên dùng khi cần xử lý gấp.

 

Mở file:

 

/wp-content/themes/YOUR_THEME/functions.php

 

Thêm:


 
add_filter('https_ssl_verify', '__return_false');
 

Hoặc áp dụng cho toàn bộ request:


 
add_filter('http_request_args', function($args) {

$args['sslverify'] = false;

return $args;

});
 

Lưu ý: cách này làm giảm bảo mật nên không nên dùng lâu dài.

 

Tổng kết

 

Lỗi cURL error 60 chủ yếu xuất phát từ việc hệ thống không xác thực được chứng chỉ SSL. Để xử lý triệt để, bạn nên ưu tiên:

 

  • Cập nhật CA Bundle

 

  • Cấu hình đúng php.ini

 

  • Cập nhật chứng chỉ ở cấp server

 

Việc duy trì hệ thống luôn cập nhật sẽ giúp hạn chế lỗi này và đảm bảo các kết nối HTTPS hoạt động ổn định, an toàn.

 HỖ TRỢ TRỰC TUYẾN