SwissSign verlangt eine jährliche Domain-Validierung auf DNS-Ebene. Die Validierungsaufforderung kommt per E-Mail von [email protected]. Die DNS-Einträge müssen innerhalb Monatsfrist in der jeweiligen DNS-Zone eingefügt werden, damit die Validierung erfolgen kann.
Über den Dienst seppmail.cloud certificate werden Zertifikate für den jeweiligen Benutzer bezogen. Der MPKI-Provider (SwissSign) prüft damit, ob der Antragssteller berechtigt ist, für die jeweilige Domäne Zertifikate zu beziehen. Der Dienst ist in der Regel einen Arbeitstag nach Erstellen des DNS-Eintrages verfügbar.
- SwissSign TXT domain.tld 3600 IN TXT "swisssign-check=<key>"
- GINA 1 – ACME Challenge CNAME _acme-challenge.securemail.domain.tld 300 IN CNAME _acme-challenge.securemail.domain.tld.le.seppmail.cloud.
- GINA 2 – Securemail CNAME securemail.domain.tld 300 IN CNAME securemail.ch.seppmail.cloud.
swisssign-key ohne die Zeichen < und > eingeben. Die abschliessenden Punkte am Ende von domain.tld und seppmail.cloud. dürfen nicht vergessen werden.
Das folgende Script wird als Script Editor im Agent (NinjaOne / RMM) auf dem DNS-Server des Kunden ausgeführt. Es setzt dnscmd als primäres Tool ein.
# ============================================================ # SCHULUNG: SwissSign DNS-Validierung erneuern – contoso.com # Ticket: TICKET-00000 # Techniker: Max Muster # Tool: dnscmd (auf dem DNS-Server des Kunden ausfuehren) # ============================================================ # --- VARIABLEN ANPASSEN --- $DNSServer = "." # "." = lokaler DNS-Server; sonst Hostname/IP $Zone = "contoso.com" $SwissKey = "HIER_KEY_AUS_SEPPMAIL_EMAIL_EINFUEGEN" # Key aus E-Mail von [email protected] # ============================================================ # SCHRITT 1: ZONE-INVENTAR – alle Records der Zone ausgeben # Zweck: Uebersicht verschaffen, bestehende swisssign-/acme-Eintraege finden # ============================================================ Write-Host "=== ZONE INVENTAR: $Zone ===" -ForegroundColor Cyan dnscmd $DNSServer /enumrecords $Zone "@" /type TXT dnscmd $DNSServer /enumrecords $Zone "@" # ============================================================ # SCHRITT 2: BESTEHENDEN swisssign-check TXT-EINTRAG SUCHEN # Zweck: Pruefen ob ein alter Key vorhanden ist (muss ersetzt werden) # ============================================================ Write-Host "`n=== SUCHE NACH swisssign-check EINTRAG ===" -ForegroundColor Yellow dnscmd $DNSServer /enumrecords $Zone "@" /type TXT | Select-String "swisssign" # ============================================================ # SCHRITT 3a: ALTEN swisssign-check TXT-EINTRAG LOESCHEN # ACHTUNG: Nur ausfuehren wenn ein alter Eintrag existiert! # ACHTUNG: Loescht ALLE TXT-Records auf "@" – bei mehreren TXT-Eintraegen # (z.B. SPF!) zuerst pruefen und gezielt loeschen! # ============================================================ Write-Host "`n=== LOESCHE ALTEN swisssign TXT-EINTRAG ===" -ForegroundColor Red dnscmd $DNSServer /recorddelete $Zone "@" TXT /f # Hinweis: /f = Force (kein Rueckfrage-Prompt) # ============================================================ # SCHRITT 3b: NEUEN swisssign-check TXT-EINTRAG SETZEN # Format: contoso.com. 3600 IN TXT "swisssign-check=<key>" # ============================================================ Write-Host "`n=== SETZE NEUEN swisssign TXT-EINTRAG ===" -ForegroundColor Green dnscmd $DNSServer /recordadd $Zone "@" 3600 TXT "swisssign-check=$SwissKey" # ============================================================ # SCHRITT 4: KONTROLLE – neuen Eintrag verifizieren # ============================================================ Write-Host "`n=== KONTROLLE: TXT-EINTRAEGE NACH UPDATE ===" -ForegroundColor Cyan dnscmd $DNSServer /enumrecords $Zone "@" /type TXT # ============================================================ # SCHRITT 5: OPTIONAL – GINA CNAME-EINTRAEGE PRUEFEN # (werden bei der Erstinstallation gesetzt, aendern sich i.d.R. nicht) # ============================================================ Write-Host "`n=== CNAME-EINTRAEGE PRUEFEN (GINA) ===" -ForegroundColor Cyan dnscmd $DNSServer /enumrecords $Zone "_acme-challenge.securemail" dnscmd $DNSServer /enumrecords $Zone "securemail" # ============================================================ # SCHRITT 6: EXTERNE VERIFIKATION (nach DNS-Replikation ~5-15min) # ============================================================ Write-Host "`n=== EXTERNE VERIFIKATION (nach Replikation) ===" -ForegroundColor Magenta Write-Host "Befehl zum Testen: nslookup -type=TXT $Zone 8.8.8.8" Resolve-DnsName -Name $Zone -Type TXT -Server "8.8.8.8" | Select-Object -ExpandProperty Strings
| Punkt | Beschreibung |
|---|---|
| Key-Quelle | Den swisssign-check=... Key aus der E-Mail von [email protected] entnehmen. Alternativ im SEPPMail-Portal unter dem Menüpunkt Aufgaben einsehbar. |
| Mehrere TXT-Records | Vor dem Löschen prüfen: Gibt es noch andere TXT-Records (z.B. SPF)? In diesem Fall nur den swisssign-Eintrag gezielt löschen — nicht alle TXT-Records pauschal entfernen. |
| TTL | Standard-TTL gemäss Fabrikam IT-Services: 3600 Sekunden. |
| Aktivierung | Bestätigungsmail von [email protected] mit Betreff: «seppmail.cloud Aktivierung – Zertifikate / MPKI erfolgreich abgeschlossen – domain.tld». Auch im SEPPMail-Portal unter Aufgaben prüfbar. |
| Frist | Die DNS-Einträge müssen innerhalb Monatsfrist ab Erhalt der E-Mail in der DNS-Zone eingefügt werden. |
- DNS-Eintrag setzen und extern validieren (z.B. via
nslookup -type=TXT contoso.com 8.8.8.8oder MX Toolbox). - Warten auf Bestätigungsmail von [email protected].
- Ticket-Status im Jira auf Erledigt setzen.
- Kurznotiz im Ticket erfassen: Datum der Änderung & neuer Key (anonymisiert oder Referenz auf KeePass-Eintrag).