Có rất nhiều lý do có thể khiến việc xác minh SSL thất bại. Bắt đầu từ quá nhiều chuyển hướng đến .ini
các tệp / thiết lập sai hoặc đơn giản là thiếu chứng chỉ hoặc tên miền phụ. Trong mọi trường hợp, bạn sẽ cần tìm kiếm lý do cho điều đó và khắc phục nó . Không có cách nào xung quanh nó.
Nhưng để tạm thời khắc phục sự cố đó (giả sử bạn cần phát triển mã của mình hơn nữa và khắc phục lỗi SSL sau này), bạn có thể sử dụng bộ lọc:
add_filter( 'https_ssl_verify', '__return_false' );
Khi bạn đang chạy ứng dụng này trong một yêu cầu từ xa, bạn nên bọc nó trong một cuộc gọi lại được gắn vào bộ lọc được kích hoạt trong khi yêu cầu HTTP như vậy. Đảm bảo kiểm tra xem bạn có thực sự xóa xác minh cho trường hợp chính xác không - và đảm bảo rằng bạn chỉ chạy cái này một lần để không bảo đảm các yêu cầu khác.
add_filter( 'http_request_args', function( $params, $url )
{
// find out if this is the request you are targeting and if not: abort
if ( 'foo' !== $params['foo'] )
return $params;
add_filter( 'https_ssl_verify', '__return_false' );
return $params;
}, 10, 2 );
Nếu đây là một plugin được phân phối công khai, thì bạn có thể muốn đính kèm nó vào một tùy chọn đơn giản mà người dùng có thể bật hoặc tắt. Bạn cũng có thể thử yêu cầu đã được xác minh trước và nếu không (và nếu người dùng đã chọn tham gia yêu cầu chưa được ký), thì hãy chuyển sang yêu cầu có khả năng không an toàn.
Quy tắc của ngón tay cái:
Không bao giờ thực hiện một yêu cầu không an toàn cho đến khi người dùng của bạn đồng ý thực hiện và biết về các rủi ro.