После перехода с http на https в WordPress сторонний API не работает

#wordpress #woocommerce #amazon-cognito #custom-theme

#wordpress #woocommerce #amazon-cognito #пользовательская тема

Вопрос:

Я реализовал вход в систему sigle в worpress с помощью Java с помощью Aws cognito.

он отлично работает с http, но после перехода http на https. API не работают и выдают ошибку ниже:

 WP_Error Object
(
    [errors] => Array
        (
            [http_request_failed] => Array
                (
                    [0] => cURL error 35: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
                )

        )

    [error_data] => Array
        (
        )

)
  

Я использовал API get и Post, как показано ниже:

 $bodyData = array(
      'username' => $_POST['username'],
      'password' => $_POST['password']
      );
   $response = wp_remote_post('https://example.com:8083/digitalIdentityProvider/login', 
               array(
                  'method' => 'POST',
                  'timeout' => 45,
                  'redirection' => 5,
                  'httpversion' => '2.0',
                  'sslverify'   => true,
                  'blocking' => true,
                  'headers' => array('Content-Type'=> 'application/json'),
                  'body' => json_encode($bodyData) ,
                  'cookies' => array()
                  ));
  

Не могли бы вы кого-нибудь направить или предложить?
Спасибо.

Комментарии:

1. Используете ли вы самозаверяющий сертификат? Измените sslverify на false и повторите попытку

2. пробовал, но безуспешно

Ответ №1:

Поиграв с кодом WordPress и AWS, я обнаружил проблему с Aws ELB и балансировщиком нагрузки.

SSL-сертификат был применен к LB, а сторонний API и wordpress были размещены на AWS EC2, а для EC2 не было SSL-сертификата, и я пытался получить доступ к API с помощью HTTPS:

https://example.com:8083/digitalIdentityProvider/login следовательно, запрос не был проверен там, поэтому я не получал никакого ответа от API.

Я изменил вызов API

От https://example.com:8083/digitalIdentityProvider/login

Для http://example.com:8083/digitalIdentityProvider/login

после изменения https на http. он работает нормально.