
Nếu bạn đang sử dụng WordPress và gặp lỗi "cURL error 60: SSL certificate problem: certificate has expired", bài viết này từ CodeTutHub sẽ giúp bạn hiểu nguyên nhân và cách khắc phục lỗi một cách chi tiết. Đây là lỗi phổ biến, đặc biệt sau khi chứng chỉ gốc của Let's Encrypt hết hạn vào ngày 30 tháng 9 năm 2021, ảnh hưởng đến các yêu cầu API HTTP trên nhiều trang web.
1. Giới thiệu
Lỗi "cURL error 60: SSL certificate problem: certificate has expired" thường xuất hiện khi WordPress cố gắng thực hiện các yêu cầu HTTP bằng cURL, một thư viện phổ biến dùng để thực hiện các yêu cầu HTTP. Sau ngày 30 tháng 9 năm 2021, chứng chỉ gốc DST Root CA X3 của Let's Encrypt đã hết hạn, dẫn đến lỗi SSL trên nhiều trang web sử dụng các chứng chỉ SSL liên quan.

2. Lỗi có thể xảy ra ở đâu?
Lỗi này có thể xuất hiện trong nhiều ngữ cảnh khác nhau, bao gồm:
- Khi bạn cập nhật plugin hoặc theme.
- Khi trang web của bạn thực hiện các yêu cầu API đến bên thứ ba (REST API).
- Khi bạn cố gắng tải hoặc gửi dữ liệu từ một URL qua giao thức HTTPS.
- Khi sử dụng các plugin như WooCommerce, Elementor, hoặc bất kỳ plugin nào phụ thuộc vào kết nối HTTPS.
3. Tại sao chúng ta thấy lỗi chứng chỉ đã hết hạn?
Nguyên nhân chính của lỗi này là:
- Chứng chỉ DST Root CA X3 hết hạn: Let's Encrypt đã ngừng sử dụng chứng chỉ gốc DST Root CA X3 và chuyển sang ISRG Root X1. Tuy nhiên, nhiều máy chủ hoặc hệ điều hành cũ không được cập nhật để nhận diện chứng chỉ mới.
- Phiên bản cURL lỗi thời: Nếu phiên bản cURL hoặc OpenSSL trên máy chủ của bạn đã lỗi thời, nó sẽ không nhận ra chứng chỉ mới.
- Tệp chứng chỉ không được cập nhật: Trong WordPress, tệp chứng chỉ nằm trong
/wp-includes/certificates/ca-bundle.crt, nhưng nếu tệp này không được cập nhật, nó sẽ tiếp tục sử dụng chứng chỉ cũ.
4. Giải pháp sửa lỗi
4.1 Cập nhật chứng chỉ gốc
Giải pháp hiệu quả nhất là cập nhật tệp chứng chỉ ca-bundle.crt trong thư mục /wp-includes/certificates/.
4.2 Hướng dẫn cập nhật chứng chỉ thủ công
Bước 1: Tải tệp chứng chỉ mới
- Truy cập curl.haxx.se/ca/cacert.pem để tải tệp chứng chỉ gốc mới nhất.
- Đổi tên tệp vừa tải về thành
ca-bundle.crt.
Bước 2: Sao lưu tệp chứng chỉ cũ
- Sử dụng trình quản lý tệp hoặc FTP client (như FileZilla) để truy cập vào thư mục
/wp-includes/certificates/. - Sao chép tệp
ca-bundle.crtcũ và lưu lại để phòng trường hợp cần khôi phục.
Bước 3: Thay thế tệp chứng chỉ mới
- Upload tệp
ca-bundle.crtvừa tải về vào thư mục/wp-includes/certificates/, thay thế tệp cũ. - Kiểm tra lại website để đảm bảo lỗi đã được khắc phục.
4.3 Cập nhật qua URL với script trong functions.php
Nếu bạn muốn tự động cập nhật chứng chỉ từ giao diện web, bạn có thể thêm đoạn mã sau vào tệp functions.php của theme:
add_action('init', function () {
if (isset($_GET['update-certificate']) && $_GET['update-certificate'] === 'true') {
$url = 'https://curl.haxx.se/ca/cacert.pem';
$destination = ABSPATH . 'wp-includes/certificates/ca-bundle.crt';
$response = wp_remote_get($url);
if (is_wp_error($response)) {
echo "Không thể tải tệp chứng chỉ.";
exit;
}
$certificate = wp_remote_retrieve_body($response);
if (!empty($certificate)) {
file_put_contents($destination, $certificate);
echo "Cập nhật chứng chỉ thành công!";
} else {
echo "Lỗi khi tải nội dung tệp chứng chỉ.";
}
exit;
}
});Tiến hành sửa:
- Truy cập URL theo định dạng:
http://mysite.com/?update-certificate=true(nhớ thaymysite.comthành domain website của bạn) - Nếu cập nhật thành công, bạn sẽ thấy thông báo "Cập nhật chứng chỉ thành công!".
5. Các cách khắc phục khác
Nếu cách trên không giải quyết được vấn đề, bạn có thể thử các phương pháp sau:
5.1 Cập nhật cURL và OpenSSL
Đảm bảo rằng máy chủ của bạn đang chạy các phiên bản mới nhất của cURL và OpenSSL. Liên hệ nhà cung cấp dịch vụ hosting để yêu cầu hỗ trợ nâng cấp.
5.2 Sử dụng Plugin để sửa lỗi SSL
Các plugin như Really Simple SSL hoặc SSL Insecure Content Fixer có thể giúp bạn khắc phục một số vấn đề SSL.
5.3 Chuyển sang một nhà cung cấp chứng chỉ khác
Nếu lỗi vẫn xảy ra, bạn có thể cân nhắc sử dụng chứng chỉ từ nhà cung cấp khác như Cloudflare, Comodo, hoặc DigiCert.
6. Kết luận
Lỗi cURL error 60: SSL certificate problem có thể gây gián đoạn hoạt động của trang web WordPress, đặc biệt là khi trang của bạn thực hiện các yêu cầu HTTPS. Tuy nhiên, với các bước hướng dẫn trên, bạn có thể dễ dàng khắc phục vấn đề này và đảm bảo rằng trang web của mình hoạt động ổn định.
Nếu bạn có bất kỳ câu hỏi hoặc gặp khó khăn nào, hãy để lại bình luận bên dưới hoặc liên hệ đội ngũ CodeTutHub để được hỗ trợ kịp thời! 🚀









