curl: (60) SSL certificate problem + Fix

curl: (60) SSL certificate problem + Fix – cURL is a scripts for transferring data from and to servers via URLs. also used in smartphones, routers, television and many electronic equipment.

If you are using wordpress and you got an error when you was trying to install a plugin or doing an update error likecurl: (60) SSL certificate problem: certificate is not yet valid. dont panic just follow this steps .

curl: (60) SSL certificate problem: certificate is not yet valid

This error is is very easy to fix you have to fix your server clock because it is not set correctly which makes it reject the ssl certificate .

this error happening especialy when the bios is reseted or the server owner changer something in the server like adding new ram or changing bios battery and forget to set the correct date and time .

If the date or time is wrong in your server an you can not fix it because you dont have access to this server then just contact your hosting provider and they will .

after you set the dat and time correctely try to install you plugin ir update and you will notice that the error curl: (60) SSL certificate problem: certificate is not yet valid was fixed .

Dont forget to restart your server .

Most common cURL errors :

cURL error 28: Connection timed out

cURL error 28 occurs when the cURL request isn’t completed in a certain amount of time.

This happens when the cURL timeout value is set too low or when a firewall is blocking the cURL request. Another possibility is a security module, for example, the Apache mod_security module.

To fix cURL error 28 you can try to disable WordPress Firewall .

Try to update ALL PLUGINS Also try to disable them .

cheek your access.log and error.log

on wordpress Edit your wp-config.php file

Remplace this code :

define('WP_DEBUG', false);

with this one :

define(‘WP_DEBUG’, true);
 define(‘WP_DEBUG_LOG’, true);
 define(‘WP_DEBUG_DISPLAY’, false);

You will find the errors log file in wp-content/debug.log

if still not work ask for help from your hosting provider .

cURL error 60: SSL certificate problem: unable to get local issuer certificate

cURL error 60 occurs when the site uses an invalid SSL certificate.

This error often occurs on localhost development environments since these usually don’t have a valid SSL certificate.

If this error happens on your live site, contact your hosting provider to install a valid SSL certificate for you.

cURL error 35: SSL connect error

cURL error 35 is caused by a misconfiguration on the server.

can be the version mismatch between the PHP cURL and SSL protocol .

also can be an outdated certificate within cURL, or a mismatch in ciphers.

List of cURL error codes :


curl: (0)

OK All fine.

curl: (1)


UNSUPPORTED_PROTOCOL The URL you passed to libcurl used a protocol that this “curl.exe” does not support.

curl: (2)


FAILED_INIT Very early initialization code failed. This is likely to be an internal error or problem, or a resource problem.

curl: (3)

URL_MALFORMAT The URL was not properly formatted.

curl: (4)

NOT_BUILT_IN A requested feature, protocol or option was not found built-in in this curl.exe.

curl: (5)

COULDNT_RESOLVE_PROXY Couldn’t resolve proxy. The given proxy host could not be resolved.

curl: (6)

COULDNT_RESOLVE_HOST Couldn’t resolve host. The given remote host was not resolved.

curl: (7)

COULDNT_CONNECT Failed to connect() to host or proxy.

curl: (8)

FTP_WEIRD_SERVER_REPLY The server sent data libcurl couldn’t parse. This error code is used for more than just FTP and is aliased as CURLE_WEIRD_SERVER_REPLY since 7.51.0.

curl: (9)

REMOTE_ACCESS_DENIED We were denied access to the resource given in the URL. For FTP, this occurs while trying to change to the remote directory.

curl: (10)

FTP_ACCEPT_FAILED While waiting for the server to connect back when an active FTP session is used, an error code was sent over the control connection or similar.

curl: (11)

FTP_WEIRD_PASS_REPLY After having sent the FTP password to the server, libcurl expects a proper reply. This error code indicates that an unexpected code was returned.

curl: (12)

FTP_ACCEPT_TIMEOUT During an active FTP session while waiting for the server to connect, the CURLOPT_ACCEPTTIMEOUT_MS (or the internal default) timeout expired.

curl: (13)

FTP_WEIRD_PASV_REPLY libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command. The server is flawed.

curl: (14)

FTP_WEIRD_227_FORMAT FTP servers return a 227-line as a response to a PASV command. If libcurl fails to parse that line, this return code is passed back.

curl: (15)

FTP_CANT_GET_HOST An internal failure to lookup the host used for the new connection.

curl: (16)

HTTP2 A problem was detected in the HTTP2 framing layer. This is somewhat generic and can be one out of several problems, see the error buffer for details.

curl: (17)

FTP_COULDNT_SET_TYPE Received an error when trying to set the transfer mode to binary or ASCII.

curl: (18)

PARTIAL_FILE A file transfer was shorter or larger than expected. This happens when the server first reports an expected transfer size, and then delivers data that doesn’t match the previously given size.

curl: (19)

FTP_COULDNT_RETR_FILE This was either a weird reply to a ‘RETR’ command or a zero byte transfer complete.

curl: (21)

QUOTE_ERROR When sending custom “QUOTE” commands to the remote server, one of the commands returned an error code that was 400 or higher (for FTP) or otherwise indicated unsuccessful completion of the command.

curl: (22)

HTTP_RETURNED_ERROR This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400.

curl: (23)

WRITE_ERROR An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback.

curl: (25)

UPLOAD_FAILED Failed starting the upload. For FTP, the server typically denied the STOR command. The error buffer usually contains the server’s explanation for this.

curl: (26)

READ_ERROR There was a problem reading a local file or an error returned by the read callback.

curl: (27)

OUT_OF_MEMORY A memory allocation request failed. This is serious badness and things are severely screwed up if this ever occurs.

curl: (28)

OPERATION_TIMEDOUT Operation timeout. The specified time-out period was reached according to the conditions.

curl: (30)

FTP_PORT_FAILED The FTP PORT command returned error. This mostly happens when you haven’t specified a good enough address for libcurl to use. See CURLOPT_FTPPORT.

curl: (31)

FTP_COULDNT_USE_REST The FTP REST command returned error. This should never happen if the server is sane.

curl: (33)

RANGE_ERROR The server does not support or accept range requests.

curl: (34)

HTTP_POST_ERROR This is an odd error that mainly occurs due to internal confusion.

curl: (35)

SSL_CONNECT_ERROR A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints the problem slightly more. Could be certificates (file formats, paths, permissions), passwords, and others.

curl: (36)

BAD_DOWNLOAD_RESUME The download could not be resumed because the specified offset was out of the file boundary.

curl: (37)

FILE_COULDNT_READ_FILE A file given with FILE:// couldn’t be opened. Most likely because the file path doesn’t identify an existing file. Did you check file permissions?

curl: (38)

LDAP_CANNOT_BIND LDAP cannot bind. LDAP bind operation failed.

curl: (39)


curl: (41)

FUNCTION_NOT_FOUND Function not found. A required zlib function was not found.

curl: (42)

ABORTED_BY_CALLBACK Aborted by callback. A callback returned “abort” to libcurl.

curl: (43)

BAD_FUNCTION_ARGUMENT Internal error. A function was called with a bad parameter.

curl: (45)

INTERFACE_FAILED Interface error. A specified outgoing interface could not be used. Set which interface to use for outgoing connections’ source IP address with CURLOPT_INTERFACE.

curl: (47)

TOO_MANY_REDIRECTS Too many redirects. When following redirects, libcurl hit the maximum amount. Set your limit with CURLOPT_MAXREDIRS.

curl: (48)

UNKNOWN_OPTION An option passed to libcurl is not recognized/known. Refer to the appropriate documentation. This is most likely a problem in the program that uses libcurl. The error buffer might contain more specific information about which exact option it concerns.

curl: (49)

TELNET_OPTION_SYNTAX A telnet option string was Illegally formatted.

curl: (51)

PEER_FAILED_VERIFICATION The remote server’s SSL certificate or SSH md5 fingerprint was deemed not OK.

curl: (52)

GOT_NOTHING Nothing was returned from the server, and under the circumstances, getting nothing is considered an error.

curl: (53)

SSL_ENGINE_NOTFOUND The specified crypto engine wasn’t found.

curl: (54)

SSL_ENGINE_SETFAILED Failed setting the selected SSL crypto engine as default!

curl: (55)

SEND_ERROR Failed sending network data.

curl: (56)

RECV_ERROR Failure with receiving network data.

curl: (58)

SSL_CERTPROBLEM problem with the local client certificate.

curl: (59)

SSL_CIPHER Couldn’t use specified cipher.

curl: (60)

SSL_CACERT Peer certificate cannot be authenticated with known CA certificates.

curl: (61)

BAD_CONTENT_ENCODING Unrecognized transfer encoding.

curl: (62)


curl: (63)

FILESIZE_EXCEEDED Maximum file size exceeded.

curl: (64)

USE_SSL_FAILED Requested FTP SSL level failed.

curl: (65)

SEND_FAIL_REWIND When doing a send operation curl had to rewind the data to retransmit, but the rewinding operation failed.

curl: (66)

SSL_ENGINE_INITFAILED Initiating the SSL Engine failed.

curl: (67)

LOGIN_DENIED The remote server denied curl to login (Added in 7.13.1)

curl: (68)

TFTP_NOTFOUND File not found on TFTP server.

curl: (69)

TFTP_PERM Permission problem on TFTP server.

curl: (70)

REMOTE_DISK_FULL Out of disk space on the server.

curl: (71)

TFTP_ILLEGAL Illegal TFTP operation.

curl: (72)

TFTP_UNKNOWNID Unknown TFTP transfer ID.

curl: (73)

REMOTE_FILE_EXISTS File already exists and will not be overwritten.

curl: (74)

TFTP_NOSUCHUSER This error should never be returned by a properly functioning TFTP server.

curl: (75)

CONV_FAILED Character conversion failed.

curl: (76)

CONV_REQD Caller must register conversion callbacks.

curl: (77)

SSL_CACERT_BADFILE Problem with reading the SSL CA cert (path? access rights?)

curl: (78)

REMOTE_FILE_NOT_FOUND The resource referenced in the URL does not exist.

curl: (79)

SSH An unspecified error occurred during the SSH session.

curl: (80)

SSL_SHUTDOWN_FAILED Failed to shut down the SSL connection.

curl: (81)

AGAIN Socket is not ready for send/recv wait till it’s ready and try again. This return code is only returned from curl_easy_recv and curl_easy_send (Added in 7.18.2)

curl: (82)

SSL_CRL_BADFILE Failed to load CRL file (Added in 7.19.0)

curl: (83)

SSL_ISSUER_ERROR Issuer check failed (Added in 7.19.0)

curl: (84)

FTP_PRET_FAILED The FTP server does not understand the PRET command at all or does not support the given argument. Be careful when using CURLOPT_CUSTOMREQUEST, a custom LIST command will be sent with PRET CMD before PASV as well. (Added in 7.20.0)

curl: (85)

RTSP_CSEQ_ERROR Mismatch of RTSP CSeq numbers.

curl: (86)

RTSP_SESSION_ERROR Mismatch of RTSP Session Identifiers.

curl: (87)

FTP_BAD_FILE_LIST Unable to parse FTP file list (during FTP wildcard downloading).

curl: (88)

CHUNK_FAILED Chunk callback reported error.

curl: (89)

NO_CONNECTION_AVAILABLE (For internal use only, will never be returned by libcurl) No connection available, the session will be queued. (added in 7.30.0)

curl: (90)

SSL_PINNEDPUBKEYNOTMATCH Failed to match the pinned key specified with CURLOPT_PINNEDPUBLICKEY.

curl: (91)

SSL_INVALIDCERTSTATUS Status returned failure when asked with CURLOPT_SSL_VERIFYSTATUS.

curl: (92)

HTTP2_STREAM Stream error in the HTTP/2 framing layer.