2025-04-21 07:17:54
пример bash-скрипта для CentOS 7, который комплексно проверяет HTTPS-доверие между двумя бэк-хостами с учётом DNS (включая CAA-записи), IP и SSL-сертификатов. В скрипте используются стандартные утилиты из репозитория CentOS 7: dig, openssl, grep, sed, date.
#!/bin/bash
# Хосты для проверки
HOSTS=("host1.example.com" "host2.example.com")
# Функция проверки CAA-записей через dig
check_caa() {
local domain=$1
echo "Проверка CAA записей для $domain:"
dig +short CAA $domain | while read -r line; do
echo " $line"
done
if ! dig +short CAA $domain | grep -q .; then
echo " CAA записи отсутствуют, любые CA могут выдавать сертификаты"
fi
echo
}
# Функция проверки IP-адресов DNS
check_dns_ip() {
local domain=$1
echo "IP-адреса для $domain:"
dig +short A $domain
dig +short AAAA $domain
echo
}
# Функция проверки SSL-сертификата через openssl
check_ssl_cert() {
local domain=$1
local port=443
echo "Проверка SSL-сертификата для $domain:$port"
# Получаем сертификат
cert=$(echo | openssl s_client -connect ${domain}:${port} -servername ${domain} 2>/dev/null | \
sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p')
if [[ -z "$cert" ]]; then
echo " Ошибка: не удалось получить сертификат"
echo
return
fi
# Выводим основные данные сертификата
echo "$cert" | openssl x509 -noout -subject -issuer -dates -serial -fingerprint
# Проверяем цепочку сертификатов (только локально, без проверки CA в сети)
echo "$cert" | openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt /dev/stdin 2>&1 | \
sed 's/^/ /'
echo
}
# Основной цикл по хостам
for host in "${HOSTS[@]}"; do
echo "=== Проверка хоста: $host ==="
check_dns_ip "$host"
check_caa "$host"
check_ssl_cert "$host"
done
Back to list