[
  {
    "tag": "T-7",
    "aktion": "Schlüsselpaar erzeugen und inaktiven Selektor im DNS veröffentlichen",
    "befehl": "openssl genrsa -out dkim_private.pem 2048",
    "verifizierung": "dig +short TXT s2026-q1._domainkey.captaindns.com"
  },
  {
    "tag": "T-7",
    "aktion": "Privaten Schlüssel in KMS oder Vault speichern",
    "befehl": "vault kv put secret/dkim/captaindns/s2026-q1 private_key=@dkim_private.pem",
    "verifizierung": "vault kv get secret/dkim/captaindns/s2026-q1"
  },
  {
    "tag": "T+0",
    "aktion": "MTA-Signatur auf den neuen Selektor umschalten",
    "befehl": "aws sesv2 put-email-identity-dkim-signing-attributes --email-identity captaindns.com",
    "verifizierung": "DKIM-Signature-Header der ausgehenden Nachrichten prüfen"
  },
  {
    "tag": "T+1",
    "aktion": "DMARC-Aggregate-Reports (rua) 24 Stunden lang überwachen",
    "befehl": "N/A (rua-Parsing)",
    "verifizierung": "auth_results/dkim/selector = s2026-q1 für 100% des Traffics"
  },
  {
    "tag": "T+7",
    "aktion": "Bestätigen dass 100% des Traffics mit dem neuen Selektor signiert sind",
    "befehl": "N/A (rua-Aggregation 7 Tage)",
    "verifizierung": "Zielschwelle: unter 1% auf dem alten Selektor"
  },
  {
    "tag": "T+8",
    "aktion": "MTA-Signatur für den alten Selektor entfernen (TXT bleibt veröffentlicht)",
    "befehl": "OpenDKIM KeyTable und SigningTable bearbeiten und neu laden",
    "verifizierung": "Keine ausgehende Nachricht mit dem alten Selektor signiert"
  },
  {
    "tag": "T+30",
    "aktion": "TXT des alten Selektors löschen und privaten Schlüssel im KMS vernichten",
    "befehl": "curl -X DELETE Cloudflare API dns_records dann vault kv destroy",
    "verifizierung": "dig +short TXT s2025-q4._domainkey.captaindns.com gibt leer zurück"
  }
]
