Я пытаюсь записать Сценарий 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 на единственных душах, достаточно храбрых для ответа на этот вопрос, становятся старыми. Или внесите что-то значимое или перейдите.