HSTS preload — алерт когда заголовок пропал после деплоя
Сайт в HSTS preload-листе, но после рефакторинга nginx конфиг заголовок пропал. Через 3 месяца домен будет удалён из preload-листа. Нужен ежедневный чек.
Рецепт
#!/usr/bin/env bash
# Wrap as HTTP endpoint or run as a heartbeat-fed cron job.
URL="${1:-https://example.com}"
H=$(curl -sI -o /dev/null -w "%header{strict-transport-security}" "$URL")
[ -z "$H" ] && { echo "missing"; exit 1; }
echo "$H" | grep -q "preload" || { echo "no-preload"; exit 1; }
echo "$H" | grep -q "max-age=31536000\|max-age=63072000" || { echo "max-age-low"; exit 1; }
echo "$H" | grep -q "includeSubDomains" || { echo "no-subdomains"; exit 1; }
echo "ok"
То же самое в Enterno.io
Уже встроено в Security Scanner — и в SSL-монитор Enterno через `assert_body`. Лучше комбинировать оба: scanner глубоко анализирует вашу политику, monitor алертит на регрессию мгновенно.
Похожие рецепты
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.
Мисконфигурация name-server открыла AXFR на интернет — все ваши поддомены, MX, TXT (включая SPF DKIM ключи) видны атакующему. Ежедневный чек с алертом.
Caddy обычно сам обновляет cert, но один раз rate-limit от Let's Encrypt сорвал renewal — узнали за 2 дня до expiry. Нужен ежедневный двойной чек.