php curl -k или –insecure, -X

С PHP и curl мне нужно подключиться через прокси-сервер к защищенному SSL-сайтом и игнорировать предупреждения сертификатов. Моя командная строка curl выглядит так:

curl -k -u username:password -X GET https://someURL 

Просматривая curl.php, я вижу, что я считаю правильным выбором. С ними я получаю что-то вроде этого:

  $ch = curl_init("https://someURL"); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Ignore cert errors? curl_setopt($ch, CURLOPT_PROXY, true); // Proxy true? curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "username:password"); $result = curl_exec($ch); 

Но, $ result всегда возвращает false. В моем пароле есть специальный символ «!». Возможно, мне нужно избежать этого? Кроме этого, любые другие идеи?

Спасибо, Скотт

Чтобы полностью отключить проверку ssl-сертификата, CURLOPT_SSL_VERIFYPEER опция CURLOPT_SSL_VERIFYPEER . Если он установлен в false проверка сертификата будет вообще отключена. Поскольку значение по умолчанию равно true , вам нужно добавить:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Из документации PHP :

CURLOPT_SSL_VERIFYPEER FALSE, чтобы остановить cURL от проверки сертификата партнера. Альтернативные сертификаты для проверки могут быть указаны с помощью опции CURLOPT_CAINFO, или каталог сертификата может быть указан с помощью опции CURLOPT_CAPATH. TRUE по умолчанию, начиная с cURL 7.10. Комплект по умолчанию, установленный cURL 7.10.

Обратите внимание: если проверка сертификата отключена, вы можете опустить параметр CURLOPT_SSL_VERIFYHOST . Таким образом, можно удалить следующую строку:

 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

Вы также спросили, подходит ли следующая настройка:

 curl_setopt($ch, CURLOPT_PROXY, true); 

Из документации PHP :

Прокси HTTP для туннелирования запросов.

Означает, что он принимает прокси-адрес типа 192.168.0.1:3128, если вы используете прокси-сервер. true в этом случае не имеет смысла