Skip Navigation

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 8:00 – 13:00 9:00 – 13:00 9:00 – 13:00 8:00 – 12:00 8:00 – 12:00 -
- 14:00 – 17:00 14:00 – 18:00 14:00 – 18:00 13:00 – 17:00 13:00 – 17:00 -

Supporter timezone: Europe/Zagreb (GMT+01:00)

This topic contains 1 reply, has 0 voices.

Last updated by Bruno Kos 4 days, 1 hour ago.

Assisted by: Bruno Kos.

Author Posts
February 20, 2025 at 9:56 am #16728556

yevheniyaH

Background of the issue:
I am trying to set up WPML on my localhost WordPress site, which is currently under development. I am following the installation guide.

Symptoms:
I encountered a connection error: 'Unable to get data from service. Detailed error: cURL error 60: SSL certificate problem: self-signed certificate in certificate chain.'

Questions:
How can I resolve the cURL error 60 related to the SSL certificate?
Is there a way to bypass the SSL certificate issue on a localhost setup?

February 20, 2025 at 11:36 am #16729233

Bruno Kos
Supporter

Languages: English (English ) German (Deutsch ) French (Français )

Timezone: Europe/Zagreb (GMT+01:00)

Hi,

cURL error 60: SSL certificate problem: self-signed certificate in certificate chain is not specifically a WPML issue. It is a general cURL SSL verification issue that occurs when a PHP application (like WordPress) tries to make an HTTPS request but cannot verify the SSL certificate of the remote server.

The easiest solution is temporarily disabling SSL verification while working locally, then using a proper certificate when deploying to production.

Other than that you can try this:
https://wpml.org/faq/automatic-wpml-registration-using-php-for-easy-moves-between-production-development-and-staging/#how-do-i-set-a-different-site-key-for-each-environment

If you just need a quick workaround for development, you can disable SSL verification in WordPress by adding this to your theme’s functions.php file, something like:

add_action('http_api_curl', function($handle) {
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
}, 10, 1);

Or you can force WordPress to ignore SSL issues by adding this to wp-config.php:

define( 'WP_HTTP_BLOCK_EXTERNAL', false );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org, *.wpml.org' );

There are other possible solutions such as updating your your CA certificate bundle, etc.

I haven't tested any of this though, as this is outside of the WPML scope, so it may not work.