Mục lục
Trong quá trình vận hành website WordPress, bạn có thể gặp lỗi:
“cURL error 60: SSL certificate problem”
Đây là một lỗi khá phổ biến, xảy ra khi WordPress không thể xác minh được chứng chỉ SSL trong quá trình thực hiện các yêu cầu HTTPs. Vấn đề này thường ảnh hưởng đến các plugin, chức năng cập nhật hệ thống, hoặc kết nối API.
⚠ Khi Nào Xảy Ra Lỗi?
Lỗi cURL error 60 thường xảy ra trong các tình huống như:
- Truy cập trang kiểm tra cập nhật trong khu vực quản trị WordPress
- Kiểm tra cập nhật plugin hoặc theme
- Gửi yêu cầu HTTPs đến các API bên ngoài (ví dụ: TinyPNG, Mailchimp, PayPal…)
💡 Nguyên Nhân Gốc Rễ
Kể từ ngày 01/10/2021, nhiều website sử dụng chứng chỉ Let’s Encrypt bắt đầu gặp lỗi SSL do chứng chỉ gốc DST Root CA X3 đã hết hạn.
Khi máy chủ không cập nhật danh sách chứng chỉ gốc mới (CA Bundle), WordPress không thể xác thực được kết nối HTTPS – dẫn đến lỗi cURL error 60.
Ví dụ đoạn mã bị lỗi:
$res = wp_remote_get( 'https://wordpress.org/' );
if ( is_wp_error( $res ) ) {
echo $res->get_error_message();
}
Xử lý “cURL error 60: SSL certificate problem: certificate has expired”
1. Bỏ qua kiểm tra SSL
Để khắc phục lỗi này, bạn có thể fix đơn giản bằng cách thêm đoạn code bỏ qua việc kiểm tra https vào file functions.php của themes mà website đang sử dụng.
File cần thêm: /wp-content/themes/YOUR_THEME/functions.php
Code: add_filter('https_ssl_verify', '__return_false');
2. Cập nhật lại thông tin chứng chỉ SSL
Ngoài ra, bạn cũng có thể cập nhật lại toàn bộ chứng chỉ SSL trong file /wp-includes/certificates/ca-bundle.crt bới nội dung:
Xử lý “cURL error 60: SSL certificate problem: unable to get local issuer certificate”
Đối với lỗi này, bạn cần thực hiện lần lượt các bước sau:
1. Download file https://curl.se/ca/cacert.pem và lưu trữ tại một đường dẫn (thư mục) cụ thể trên Local.
2. Mở file php.ini tương ứng với phiên bản PHP mà website đang sử dụng.
3. Tìm đến dòng curl.cainfo và openssl.cafile, sau đó cập nhật đường dẫn (thư mục) chứa file ở bước 1.
[curl]
curl.cainfo = "/<Đường dẫn>/cacert.pem"
[openssl]
openssl.cafile = "/<Đường dẫn>/cacert.pem"
4. Restart lại Webservice và PHP.
Chúc các bạn thành công !