Ваш SSL/TLS в порядке? Проверяем одной командой с testssl.sh
Знакомая ситуация? Вы настроили SSL/TLS сертификат на новом сервере. Браузер показывает заветный замочек, все кажется хорошо. Но уверены ли вы, что конфигурация оптимальна? Не торчат ли наружу старые протоколы, не используются ли слабые шифры, нет ли уязвимостей вроде Heartbleed или POODLE? Вручную проверять все это — долго и муторно.
Сегодня я хочу рассказать об инструменте, который стал для меня настоящей палочкой-выручалочкой в таких задачах — testssl.sh. Это швейцарский нож для аудита TLS/SSL, который живет прямо в вашем терминале.
Что такое testssl.sh и кому он нужен?
Если коротко, testssl.sh — это бесплатный консольный инструмент, который проверяет TLS/SSL шифрование на любом сервере и любом порту. Он анализирует поддерживаемые протоколы, шифры и известные криптографические уязвимости.
Главная прелесть этого проекта — его простота и автономность. Это не веб-сервис, которому вы скармливаете свой домен и доверяете результаты третьей стороне. Это обычный bash-скрипт. Вы запускаете его локально, и только вы видите отчет. Идеально для проверки внутренних сервисов или просто для тех, кто ценит приватность.
Кому он пригодится?
- Системным администраторам и DevOps-инженерам: для регулярного аудита безопасности серверов и проверки конфигурации перед вводом в эксплуатацию.
- Специалистам по информационной безопасности: как быстрый и удобный инструмент для пентестов и анализа защищенности.
- Веб-разработчикам: чтобы убедиться, что их тестовый или рабочий сервер настроен корректно и не имеет детских болезней.
Почему этот инструмент так хорош?
Давайте разберем ключевые особенности, которые выделяют testssl.sh на фоне других анализаторов.
1. Никакой установки — скачал и запустил
Это, пожалуй, одно из главных преимуществ. Вам не нужно возиться с зависимостями, ставить что-то через pip или npm. testssl.sh — это просто shell-скрипт.
Достаточно склонировать репозиторий:
git clone --depth 1 https://github.com/testssl/testssl.sh.git --branch 3.3dev
cd testssl.sh
Все, можно работать! Скрипт работает "из коробки" на Linux, MacOS, FreeBSD и даже в Windows через WSL или Cygwin.
2. Наглядные и понятные отчеты
Инструмент выдает очень подробный, но при этом структурированный и легко читаемый отчет. Что особенно ценно, он использует цветовую кодировку:
- Зеленый: все отлично.
- Желтый/оранжевый: есть нюансы, стоит обратить внимание.
- Красный: серьезная проблема, нужно срочно исправлять.
Такой подход позволяет моментально оценить общую картину и сфокусироваться на самом важном.
3. Гибкость и автоматизация
Хотите проверить не стандартный порт 443, а, например, почтовый сервер? Без проблем.
./testssl.sh smtp.example.com:587
Нужно получить отчет не в консоли, а в виде файла для дальнейшей обработки? Пожалуйста! testssl.sh поддерживает экспорт в CSV, JSON и даже HTML. Это открывает огромные возможности для автоматизации. Например, можно встроить проверку в CI/CD пайплайн и получать алерты, если после очередного обновления "отвалился" важный протокол или появился слабый шифр.
4. Docker-контейнер "из коробки"
Если вы адепт контейнеризации и не хотите "засорять" систему лишними файлами, для вас есть официальный Docker-образ. Запуск проверки превращается в одну команду:
docker run --rm -it ghcr.io/testssl/testssl.sh example.com
Это удобно, чисто и полностью изолированно.
Практическое применение: как это выглядит?
Давайте запустим базовую проверку для какого-нибудь сайта:
./testssl.sh github.com
Скрипт начнет последовательно проверять:
- Протоколы: SSLv2, SSLv3, TLS 1.0, 1.1, 1.2, 1.3.
- Наборы шифров (Cipher Suites): покажет, какие поддерживаются, и подсветит небезопасные.
- Детали сертификата: кто выдал, срок действия, цепочка доверия.
- Уязвимости: проверит на Heartbleed, POODLE, Logjam и десятки других известных атак.
- HTTP заголовки безопасности: HSTS, HPKP и другие.
В результате вы получите исчерпывающий отчет на несколько экранов, где каждая секция будет четко отделена и оценена.
Выводы: маст-хэв в арсенале специалиста
testssl.sh — это тот самый случай, когда простой инструмент оказывается невероятно мощным. Он не требует сложной настройки, работает где угодно и предоставляет исчерпывающую информацию о состоянии вашего TLS/SSL.
Кому особенно рекомендую:
- Всем, кто отвечает за эксплуатацию веб-серверов.
- Тем, кто хочет быстро оценить безопасность стороннего сервиса.
- Разработчикам, которые заботятся о безопасности своих приложений.
Это 100% open source, за развитием которого стоит активное сообщество. Если вы ищете надежный, бесплатный и удобный способ держать под контролем конфигурацию TLS/SSL, просто попробуйте testssl.sh. Уверен, он надолго поселится в вашей папке с утилитами.
