Ошибка с помощью ЗАВИХРЕНИЯ PHP с сертификатами SSL

Я пытаюсь записать Сценарий PHP с помощью ЗАВИХРЕНИЯ, которое может авторизовать пользователя через страницу, которая использует сертификат SSL, в дополнение к имени пользователя и паролю, и я, может казаться, не заканчиваю этап сертификата SSL.

В этом случае, curl_setopt($handle, CURLOPT_VERIFYPEER, 0) к сожалению, не опция. Сертификат является необходимой частью аутентификации, иначе я упомянул ошибку в этом другое подобное ТАК сообщение.

Я попробовал несколько выполнений командной строки ЗАВИХРЕНИЕМ:

> curl --url https://website

Это возвращается (60) SLL certificate problem ошибка. Если я корректирую команду для включения --cacert опция:

> curl --url https://website --cacert /path/to/servercert.cer

Это работает просто великолепно; подлинный веб-сайт возвращается.

Однако я попробовал следующий код PHP:

$handle = curl_init();
$options = array( 
                  CURLOPT_RETURNTRANSFER => false,
                  CURLOPT_HEADER         => true,
                  CURLOPT_FOLLOWLOCATION => false,
                  CURLOPT_SSL_VERIFYHOST => '0',
                  CURLOPT_SSL_VERIFYPEER => '1',
                  CURLOPT_CAINFO         => '/path/to/servercert.cer',
                  CURLOPT_USERAGENT      => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)',
                  CURLOPT_VERBOSE        => true,
                  CURLOPT_URL            => 'https://website'
           );

curl_setopt_array($handle, $options);
curl_exec($handle);
if (curl_errno($handle)) {
  echo 'Error: ' . curl_error($handle);
}
curl_close($handle);

Я думал бы, что код по существу походил на команды оболочки, но вместо этого меня встречают следующим сообщением об ошибке:

Ошибка: ошибка, устанавливающая сертификат, проверяет местоположения: CAfile:/path/to/servercert.cer CApath:ничего

Я считал всю литературу, которую я могу найти (особенно на php.net и curl.haxx) и, может казаться, не нахожу ничего, что решает эту проблему. Какие-либо предложения?

Править: Я попробовал chmod 777 servercert.cer без успеха. Однако в выполнении Сценария PHP с вышеупомянутым кодом из командной строки вместо браузера через php test.php, это работает отлично. Какое-либо объяснение того, почему это не работает в браузере?

РЕДАКТИРОВАНИЕ 2: Они нападение из автомобиля downvotes на единственных душах, достаточно храбрых для ответа на этот вопрос, становятся старыми. Или внесите что-то значимое или перейдите.

27
задан Community 23 May 2017 в 12:30
поделиться