Главная > Управление сетью > wget-ssl-debug-log

wget-ssl-debug-log: SSL отладка журналов

`wget-ssl-debug-log` — это скрипт или сборка специального назначения для диагностики проблем SSL/TLS-соединения и генерации подробных журналов отладки с использованием команды `wget`. В отличие от обычного использования `wget`, этот инструмент фокусируется на глубоком анализе проблем, связанных с сетевой безопасностью, возникающих в процессе соединения, таких как SSL-рукопожатие и ошибки проверки сертификата. Он в основном используется разработчиками или системными администраторами для устранения сложных ошибок SSL-коммуникации.

Обзор

`wget-ssl-debug-log` активирует функцию отладки SSL в `wget` и помогает устранять проблемы SSL/TLS-коммуникации, анализируя сгенерированные подробные журналы. Он записывает низкоуровневую информацию о SSL-рукопожатии, процессе проверки цепочки сертификатов, согласовании набора шифров и другие данные, которые не видны при обычном использовании `wget`.

Основные функции

  • Подробное журналирование SSL/TLS-рукопожатия
  • Отслеживание процесса проверки действительности сертификата
  • Запись информации о согласовании набора шифров и протокола
  • Диагностика проблем сетевой безопасности

Основные параметры

Поскольку `wget-ssl-debug-log` внутренне использует команду `wget`, вы можете использовать различные параметры `wget`. Ниже приведены параметры `wget`, которые особенно полезны при отладке SSL.

Связанные с SSL/TLS

Вывод/Журналирование

Сгенерированная команда:

Комбинируйте команды.

Описание:

`wget-ssl-debug-log` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

`wget-ssl-debug-log` в основном используется для диагностики проблем SSL/TLS-соединения с определенным URL. Ниже приведены несколько распространенных примеров использования.

Базовая отладка SSL-журналов

wget-ssl-debug-log https://badssl.com/expired/

Генерирует подробные журналы отладки SSL для указанного URL. Журналы также отображаются в стандартном выводе.

Сохранение журнала в определенный файл

wget-ssl-debug-log https://example.com/ -o my_ssl_debug.log

Сохраняет журналы отладки в отдельный файл. (Зависит от реализации скрипта)

Игнорировать проверку сертификата (Внимание!)

wget-ssl-debug-log --no-check-certificate https://self-signed.badssl.com/

При возникновении ошибок проверки сертификата вы можете использовать параметр `--no-check-certificate`, чтобы игнорировать проверку и попытаться установить соединение, получая при этом информацию для отладки. Это полезно для диагностики проблем, но сопряжено с риском для безопасности, поэтому не используйте его в реальных производственных средах.

Установка

`wget-ssl-debug-log` не является командой, включенной по умолчанию в стандартные дистрибутивы Linux. Обычно он используется путем активации определенных параметров отладки при компиляции `wget` из исходного кода или путем написания собственного скрипта оболочки, который оборачивает `wget`. Ниже приведены общие подходы.

Способ 1: Компиляция `wget` из исходного кода (рекомендуется)

Для компиляции `wget` с поддержкой журналирования SSL-отладки необходимо добавить параметр `--enable-debug` к скрипту `configure` вместе с библиотекой OpenSSL. Этот метод предоставляет наиболее подробную информацию для отладки SSL.

sudo apt update && sudo apt install -y build-essential libssl-dev
cd /tmp
wget https://ftp.gnu.org/gnu/wget/wget-1.21.4.tar.gz # Проверьте последнюю версию
tar -xzf wget-1.21.4.tar.gz
cd wget-1.21.4
./configure --with-ssl=openssl --enable-debug
make
sudo make install

Пример: Компиляция `wget` из исходного кода

Способ 2: Создание скрипта оболочки

Вы можете создать скрипт оболочки для журналирования SSL-отладки, используя существующую установку `wget`. Этот метод использует параметр `--debug` команды `wget` в сочетании с инструментами трассировки системных вызовов, такими как `strace` или `ltrace`. Этот метод проще компиляции, но глубина предоставляемой информации для отладки может отличаться.

#!/bin/bash

# wget-ssl-debug-log.sh

LOG_FILE="wget_ssl_debug_$(date +%Y%m%d_%H%M%S).log"

echo "[$(date)] Starting wget with SSL debug logging..."
echo "Log file: $LOG_FILE"

# Запись подробных журналов с использованием параметра --debug команды wget и перенаправления stderr
# Настройка переменных окружения, связанных с OpenSSL (при необходимости)

# Пример: Отладка SSL-журналирования для определенного URL
# При фактическом использовании передавайте аргументы через "$@"

# Переменные окружения для отладки OpenSSL (OpenSSL 1.1.0 и выше)
# export SSLKEYLOGFILE="ssl_key_log.txt" # Журналирование ключа TLS (для анализа Wireshark)

# Использование параметра --debug команды wget
wget --debug "$@" 2>&1 | tee -a "$LOG_FILE"

# Трассировка системных вызовов с помощью strace (необязательно)
# strace -o "${LOG_FILE%.log}_strace.log" wget "$@"

echo "[$(date)] Debugging complete. Check $LOG_FILE for details."

Пример: Скрипт `wget-ssl-debug-log.sh`

chmod +x wget-ssl-debug-log.sh
sudo mv wget-ssl-debug-log.sh /usr/local/bin/wget-ssl-debug-log

Предоставление прав на выполнение скрипта и перемещение в каталог

Советы и меры предосторожности

Журналирование SSL-отладки предоставляет очень подробную информацию, поэтому размер файла журнала может увеличиться. После устранения проблемы рекомендуется отключить режим отладки или очистить файлы журнала.

Советы по анализу журналов

Поиск следующих ключевых слов в сгенерированных файлах журналов может помочь в устранении неполадок:

  • `ERROR`
  • `FAIL`
  • `certificate`
  • `handshake`
  • `protocol`
  • `cipher`
  • `peer`

Предупреждение о безопасности

Параметр `--no-check-certificate` представляет риск для безопасности, поэтому используйте его только для диагностики проблем и никогда не используйте в реальных производственных средах.

  • Использование `--no-check-certificate` увеличивает риск перехвата данных
  • Рекомендуется всегда использовать действительные сертификаты

Использование переменных окружения OpenSSL

Чтобы включить журналирование отладки самой библиотеки OpenSSL, вы можете установить переменную окружения `SSLKEYLOGFILE` для записи ключа TLS. Этот файл может использоваться инструментами анализа сети, такими как Wireshark, для расшифровки зашифрованного трафика.

export SSLKEYLOGFILE="/tmp/ssl_key_log.txt"
wget-ssl-debug-log https://example.com/
# Расшифруйте трафик в Wireshark, используя файл ssl_key_log.txt

Пример журналирования ключа TLS


Те же команды в категории