Как мне заставить cURL работать через SSL с помощью Phalanger?

#php #ssl #curl #phalanger

#php #ssl #curl #phalanger

Вопрос:

Я пытаюсь использовать Phalanger для компиляции скрипта, который я написал на PHP, в автономный исполняемый файл. Скрипт использует расширение PHP cURL для выполнения различных вызовов REST. На самом деле это работает нормально, пока веб-сайты, на которые он попадает, используют http; однако это не удается каждый раз, когда я пытаюсь попасть в конечные точки https.

Я попытался добавить эту строку в исходный код PHP:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  

Это просто игнорировало бы любую проверку SSL; однако это не работает. Это действительно работает, если я запускаю скрипт на PHP, но когда я компилирую его с помощью Phalanger в исполняемый файл, он выдает это предупреждение:

Предупреждение: curl_setopt(): значение ‘False’ аргумента ‘value’ не поддерживается в C:test.exe в строке 76, столбец 2.

Итак, хорошо, это означает, что мне обязательно нужно проверить SSL? Конечно, хорошо. Итак, я нашел хранилище сертификатов на веб-сайте cURL, загрузил его и изменил свою строку выше на следующую:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, realpath(getcwd() . '/cacert.pem'));
  

Теперь, когда я его компилирую и запускаю исполняемый файл, я получаю это предупреждение:

Значение ‘CURLOPT_CAINFO’ аргумента ‘option’ не поддерживается в C:test.exe в строке 77, столбец 2.

Кажется, я просто не могу победить. Как я могу заставить cURL работать через PHP, скомпилированный Phalanger, через HTTPS?

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

1. Эта опция была отключена в Phalanger по соображениям производительности. Сертификат должен быть добавлен в хранилище сертификатов Windows. См. Примечание по github.com/DEVSENSE/Phalanger/blob /…