curl exits with 77 (CURLE_SSL_CACERT_BADFILE), когда указанный CA-bundle файл не найден или не читаем. 3 причины: (1) отсутствует /etc/ssl/certs/ca-certificates.crt — не установлен пакет ca-certificates, (2) в container (alpine, scratch) CA-bundle отсутствует, (3) environment variable CURL_CA_BUNDLE указывает на несуществующий файл.
Ниже: подробности, пример, связанные, FAQ.
Бесплатный онлайн-инструмент — SSL-чекер: результат мгновенно, без регистрации.
# Debian/Ubuntu: установить bundle
$ apt-get install ca-certificates
# Alpine (Docker)
$ apk add --no-cache ca-certificates
$ update-ca-certificates
# Debug — какой bundle curl видит
$ curl -v https://example.com 2>&1 | grep -i "CAfile\|CApath"
# Дефолт через env
$ export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crtОшибка curl error 77 возникает, когда cURL не может получить доступ к файлу сертификата CA, необходимому для проверки SSL-соединения. Это может произойти из-за неправильного пути к файлу сертификата, отсутствия самого файла или недостаточных прав доступа. Для решения проблемы проверьте путь к файлу сертификата в конфигурации cURL и убедитесь, что файл доступен и имеет корректные разрешения.
Ошибка curl error 77 может возникнуть по нескольким причинам, связанным с настройками SSL и сертификатами. Вот основные из них:
Для успешной работы cURL важно, чтобы система могла правильно находить и использовать файл сертификата CA, который необходим для проверки подлинности SSL-соединений.
Чтобы устранить ошибку curl error 77, необходимо проверить и, если необходимо, обновить конфигурацию cURL. Следуйте этим шагам:
curl --cacert /path/to/cacert.pem https://example.comЗамените /path/to/cacert.pem на фактический путь к вашему файлу сертификата.
ls -l /path/to/cacert.pemЕсли файл отсутствует, вам необходимо его загрузить или создать.
chmod 644 /path/to/cacert.pemЭта команда установит права чтения для всех пользователей, что позволит cURL получить доступ к файлу.
openssl x509 -in /path/to/cacert.pem -text -nooutЕсли команда выдаст ошибку, это может означать, что файл поврежден или не в формате PEM.
После выполнения этих шагов попробуйте снова выполнить команду cURL. Если ошибка все еще возникает, возможно, стоит обновить cURL до последней версии, так как в более новых версиях могут быть исправлены известные проблемы с сертификатами.
Ошибка curl error 77 указывает на проблему с файлом сертификата CA, необходимым для установления безопасного соединения. Обычно это связано с отсутствием или недоступностью файла ca-certificates.crt или его неправильной конфигурацией. Для решения проблемы убедитесь, что файл сертификатов CA доступен и правильно указан в конфигурации cURL, используя команду curl --cacert /path/to/ca-certificates.crt для указания пути к файлу.
Ошибка curl error 77 возникает, когда cURL не может найти или получить доступ к файлу сертификата CA, который необходим для проверки подлинности SSL-соединений. В большинстве случаев это связано с неправильной конфигурацией или отсутствием файла сертификатов. Важно отметить, что cURL использует пакет ca-certificates, который содержит список доверенных корневых сертификатов, необходимых для установления безопасных соединений.
Чтобы проверить, установлен ли пакет ca-certificates, можно использовать следующие команды в зависимости от вашей операционной системы:
dpkg -l | grep ca-certificates для систем на базе Debian/Ubunturpm -qa | grep ca-certificates для систем на базе Red Hat/CentOSЕсли пакет не установлен, его можно установить с помощью следующих команд:
sudo apt-get install ca-certificates для Debian/Ubuntusudo yum install ca-certificates для Red Hat/CentOSПосле установки пакета необходимо убедиться, что файл ca-certificates.crt доступен в стандартных директориях, таких как /etc/ssl/certs/ или /usr/local/share/ca-certificates/. Вы можете проверить наличие файла с помощью команды:
ls /etc/ssl/certs/ca-certificates.crtЕсли файл отсутствует, его можно обновить или восстановить, используя команду:
sudo update-ca-certificatesЭто обновит список сертификатов и создаст файл ca-certificates.crt, если он отсутствует.
Также стоит обратить внимание на права доступа к файлу сертификата. Убедитесь, что у пользователя, под которым запускается cURL, есть необходимые права на чтение файла. Для проверки прав доступа используйте команду:
ls -l /etc/ssl/certs/ca-certificates.crtЕсли права ограничены, их можно изменить с помощью команды:
sudo chmod 644 /etc/ssl/certs/ca-certificates.crtПосле внесения всех изменений рекомендуется перезапустить cURL и снова попробовать выполнить запрос. Например, можно использовать следующую команду, чтобы проверить соединение:
curl -I https://example.comЕсли ошибка curl error 77 больше не возникает, значит, проблема решена. В противном случае стоит проверить конфигурацию cURL и убедиться, что путь к файлу сертификата указан правильно. Для этого можно использовать опцию --cacert, чтобы явно указать путь к файлу сертификатов при выполнении запроса:
curl --cacert /path/to/ca-certificates.crt -I https://example.comЕсли все еще возникают проблемы, возможно, стоит рассмотреть обновление cURL до последней версии, так как в обновлениях могут быть исправлены известные ошибки и добавлены новые функции.
SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.
Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).
Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.
Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).
Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.
мониторинг SSL-сертификатов
аудит TLS-конфигурации
HTTPS как фактор ранжирования
доверие покупателей
www и поддомены.Strict-Transport-Security заставляет браузер всегда использовать HTTPS.Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.
Зарегистрироваться (FREE)Да если добавить ca-certificates. Scratch — нужно копировать bundle из builder-image.
Образы типа alpine:latest обычно имеют ca-certificates. gcr.io/distroless/base — тоже. Проверь Dockerfile.
Либо --cacert путь к self-signed CA, либо import в system bundle через update-ca-certificates.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.