#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 /…