Как игнорировать ошибки SSL в curl и wget: флаги -k и --no-check-certificate
Ошибка проверки SSL при скачивании файлов
При выполнении консольных запросов к тестовым стендам, серверам с самоподписанными сертификатами или сайтам с истекшим SSL вы столкнетесь с ошибками блокировки запроса:
curl: (60) SSL certificate problem: self signed certificate / certificate has expired
ERROR: The certificate of 'example.com' is not trusted. Как отключить проверку сертификата для curl и wget
- Для утилиты curl (флаг -k или --insecure):
# Быстрый флаг -k: curl -k https://192.168.1.50/api/data # Скачивание файла без проверки SSL: curl -k -O https://example.com/file.zip - Для утилиты wget (флаг --no-check-certificate):
wget --no-check-certificate https://example.com/archive.tar.gz - Постоянное отключение проверки в wget (для тестовых машин):
Добавьте строчкуcheck_certificate = offв файл конфигурации~/.wgetrc.
Предостережение по безопасности: Игнорирование проверки SSL отключает шифрование подлинности и делает вас уязвимыми для атак Man-in-the-Middle (перехват данных). Используйте эти флаги только для внутренних тестовых стендов и локальных IP-адресов!
Частые вопросы (FAQ)
Почему возникает ошибка SSL, если сертификат на самом деле валиден?
Возможно, на вашем Linux сервере устарел пакет корневых доверенных сертификатов. Обновите их командой: `sudo apt install --reinstall ca-certificates -y`.
Как передать свой самоподписанный CA-сертификат в curl вместо полного отключения защиты?
Используйте флаг `--cacert`: `curl --cacert /path/to/my-ca.crt https://local-service.local`.
Как в Python (библиотека requests) отключить проверку SSL?
Передайте параметр `verify=False` в метод запроса: `requests.get('https://example.com', verify=False)`.
Что означает флаг -sS в связке с curl -k?
Флаг `-s` отключает вывод шкалы прогресса (silent), а `-S` оставляет вывод критических ошибок при сбое соединения.