Какой текущий совет по CURLOPT_SSL_VERIFYPEER? - PullRequest
1 голос
/ 26 мая 2019

Какой текущий совет по CURLOPT_SSL_VERIFYPEER?Я традиционно всегда устанавливал его в false, потому что он всегда вызывал проблемы при получении https: // URLs.

Но теперь я прочитал комментарий, в котором говорится, что это позволяет атаковать «человек посередине», что ясмутно знал уже, и что я должен был загрузить файл https://curl.haxx.se/docs/caextract.html и установить директиву конфигурации curl.cainfo.И это можно установить ТОЛЬКО в файле php.ini, что делает все беспорядок.Я хотел бы установить его в моем реальном приложении, если что-нибудь.Желательно не устанавливать все, что я до сих пор не понимаю, зачем это нужно ...

Что мне делать?Я не хочу MITM-атак.Почему PHP не поставляется с надлежащим таким файлом?В чем проблема?

1 Ответ

2 голосов
/ 26 мая 2019

Хороший ответ от https://paragonie.com/blog/2017/10/certainty-automated-cacert-pem-management-for-php-software#verify-peer

Что произойдет, если вы отключите CURLOPT_SSL_VERIFYPEER? Если вы отключите эта проверка, вы отказываетесь от центра сертификации инфраструктура, а это значит, что вы решили слепо принимать самозаверяющие сертификаты.

Это подвергает вас чрезвычайно тривиальным атакам типа «человек посередине». Все перехватывающий прокси должен предложить самозаверяющий сертификат и PHP будет доверять ему, но только если вы отключите это.

В современной экосистеме единственная реальная причина использовать это, если вы используя CURLOPT_PINNEDPUBLICKEY и по какой-то причине не может использовать LetsEncrypt.

Вы должны оставить его включенным и убедиться, что на любых сайтах, которые вы используете, есть хорошие сертификаты от доверенного центра сертификации (например, платный или бесплатный сертификат от LetsEncrypt)

Настройка актуального файла о том, какие сертификаты должны быть действительными и доверенными, может быть выполнена на уровне приложения. Более подробно в этой ссылке выше, и есть проект с открытым исходным кодом, который делает это тем же автором поста: https://github.com/paragonie/certainty

Вы можете использовать это, если хотите, или просто посмотреть, что он делает, и встроить это в себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...