Я пытаюсь сделать запрос curl на один из наших локальных серверов разработки, на котором запущен сайт разработчика с самозаверяющим сертификатом SSL. Я использую curl из командной строки.
Я видел сообщения в блоге, в которых упоминалось, что вы можете добавить в список сертификатов или указать определенный (самоподписанный) сертификат как действительный, но есть ли универсальный способ сказать «не проверять» сертификат ssl - например --no-check-certificate
, Wget имеет?
--insecure
не будет работать, если у вас есть определенные версии php или apache, как описано в superuser.com/questions/1015325/…Ответы:
Да. Из справочной страницы :
Ссылка упоминается в этой записи описывает некоторую станица руководства конкретного поведения
-k
.Такое поведение можно наблюдать с
curl
запросами на тестирование страниц с BadSSL.comисточник
alias insecure-curl="curl -k"
Вы можете использовать следующую команду, чтобы применить изменения для всех соединений:
В Windows просто создать
_curlrc
текстовый файл с «небезопасным» текстом в нем в вашем%HOME%
,%CURL_HOME%
,%APPDATA%
,%USERPROFILE%
или%USERPROFILE%\Application Data
каталоге.Преимущество использования вышеуказанного решения заключается в том, что оно работает для всех
curl
команд, но это не рекомендуется, поскольку оно может вводить атаки MITM при подключении к незащищенным и ненадежным хостам.источник
Вы используете самоподписанный сертификат. Почему вы не добавили CA в свой доверенный комплект CA (Linux) или не добавили в доверенное хранилище сертификатов (windows)? Или просто используйте
--cacert /Path/to/file
с содержимым вашего доверенного самозаверяющего файла сертификата.Другие ответы отвечают на вопрос на основе
wget
сопоставимых. Однако истинный вопрос заключается в том, как сохранить доверенное соединение с помощью самозаверяющего сертификатаcurl
. Основываясь на многих комментариях, безопасность является главной заботой любого из этих ответов, и лучшим ответом будет доверять самоподписанному сертификату и оставитьcurl
нетронутыми проверки безопасности.источник