Проблема с путем для запроса php CURL с pem и ключом

#php #ssl #curl #plesk

Вопрос:

Я использовал запрос curl со сторонним сертификатом pem на сервере IIS на базе Windows, который:

       $userAgent = 'Third party name';
        $headers = array(
            "SOAPAction:",
            "Content-Type: text/xml; charset = utf-8",
            "Connection: close"
        );
        
        $cURL = curl_init();
        curl_setopt($cURL, CURLOPT_HEADER, false);
        curl_setopt($cURL, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($cURL, CURLOPT_POST, true);
        curl_setopt($cURL, CURLOPT_URL, $this->baseURL());
        curl_setopt($cURL, CURLOPT_USERAGENT, $userAgent);
        curl_setopt($cURL, CURLOPT_POSTFIELDS, $soap);
        curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($cURL, CURLOPT_ENCODING, "UTF-8");
        curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($cURL, CURLOPT_SSLCERT, $certificateURL);
        curl_setopt($cURL, CURLOPT_SSLCERTPASSWD, $this->certPass);
        $response = curl_exec($cURL);
        curl_close($cURL);
        return $response;
 

$certificateURL в Windows был

 $certificateURL = "C:/inetpub/wwwroot/api/kx2.pem"
 

и это работало нормально.

Теперь это перенесено на сервер Linux, и я использую для этого plesk, файл cert pem находится в том же каталоге с кодом, но здесь я назначил

 $certificateURL to "./kx2.pem" and to "/var/www/vhosts/domain.com/httpdocs/api/kx2.pem" 
 

это не работает, it gives error msg "could not load PEM client certificate, OpenSSL error error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small, (no key found, wrong pass phrase, or wrong file format?)" что мне делать, я перепробовал много вещей, изменил весь запрос curl, даже попробовал __DIR__ URL-адрес на основе?

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

1. Вероятно, вам следует проверить размер ключа и убедиться, что он составляет не менее 2048. Похоже, что более новые версии OpenSSL требуют этого.

2. Находится ли kx2.pem в той же папке ?

3. Ну, Крис, я преобразовал pfx в pem, он отлично работает на сервере IIS, но в plesk он показывает ошибку, если вы посмотрите на запрос curl, он также использует статический ключ, так о каком ключе вы говорите?

4. Кумар поместил его в ту же папку, где находится файл запроса curl.