Параметр командной строки curl -k (или --insecure) игнорирует ошибки недействительных и самоподписанных сертификатов. Эта настройка позволяет Curl создавать "небезопасное" SSL-соединение и пропускать проверки SSL-сертификатов, в то время как у вас все еще есть SSL-шифрованное соединение. Это может быть полезно для целей разработки. Выполнение HTTPS-запроса к ресурсу с недействительным или просроченным SSL-сертификатом без опции -k или --insecure приведет к появлению сообщения curl: "(60) SSL certificate: invalid certificate chain: error message".
1 | curl -k https://expired.badssl.com |
В этом примере Curl -k мы запрашиваем URL с просроченным SSL-сертификатом и все равно получаем ответ.
Что такое Curl?
Curl - это утилита командной строки для передачи данных на удаленный сервер или с него по одному из поддерживаемых протоколов. Curl широко используется для тестирования API, отправки запросов на сервер и просмотра содержимого и заголовков ответа сервера. Он поддерживает более 25 протоколов, включая HTTP, HTTPS, FTP, FTPS и SFTP, и имеет встроенную поддержку SSL-сертификатов, отправки веб-форм, загрузки файлов, HTTP Cookies, аутентификации пользователей и многого другого.
Что такое SSL-сертификат?
Secure Sockets Layer (SSL) - это сетевой протокол для установления безопасных, аутентифицированных и зашифрованных соединений между двумя устройствами. SSL-сертификат - это цифровой сертификат, который идентифицирует веб-сайт и шифрует информацию, отправляемую на сервер или с сервера с помощью SSL. SSL защищает конфиденциальность пользователей при отправке данных через Интернет, шифруя весь трафик между компьютером пользователя и веб-сервером, что делает невозможным перехват или чтение данных. SSL-сертификат, установленный на сервере, обеспечивает безопасное взаимодействие по протоколу HTTPS.
Примеры использования флага Curl -k
Ниже приведены примеры с использованием опции -k командной строки:
Отправка запроса Curl без флага -k на страницу с просроченным сертификатом
Curl автоматически проверяет действительность SSL-сертификата. Без флага -k, если сертификат недействителен или не может быть проверен, он выдаст ошибку.
1 | curl https://badssl.com/ |
Вы получите сообщение об ошибке недействительного сертификата SSL:
1 | curl: (60) SSL certificate problem: unable to get local issuer certificate |
Отправка запроса Curl без проверки сертификата SSL
Ниже приведен пример отправки запроса без проверки SSL-сертификата:
1 | curl -k https://badssl.com/ |
Загрузка файлов в Curl без проверки SSL-сертификата
Ниже приведен пример загрузки файла без проверки SSL в Curl:
1 | curl -k -o page.html https://reqbin.com/echo |