Neu: PostScale -- E-Mail-API für transaktionale, eingehende und maskierte Adressen. PostScale

    Was ist ein TLSA-Eintrag

    Erfahren Sie, wie TLSA-Einträge DANE für die Zertifikatsauthentifizierung ermöglichen und eine Alternative zur herkömmlichen CA-Validierung bieten. Mit Beispielen für das DNScale-Dashboard und die API.

    Ein TLSA-Eintrag (Transport Layer Security Authentication) verknüpft ein TLS-Serverzertifikat oder einen öffentlichen Schlüssel mit einem Domainnamen und ermöglicht so DANE (DNS-based Authentication of Named Entities). TLSA-Einträge bieten eine Alternative oder Ergänzung zur herkömmlichen Validierung durch Zertifizierungsstellen.

    Wie TLSA-Einträge funktionieren

    TLSA-Einträge legen fest, welches Zertifikat oder welchen Schlüssel ein Client bei einer TLS-Verbindung erwarten soll:

    _443._tcp.example.com.    3600    TLSA    3 1 1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

    Dies teilt Clients mit: „Wenn Sie sich über TCP auf Port 443 mit example.com verbinden, erwarten Sie ein Zertifikat, das diesem SHA-256-Hash entspricht."

    Eintragskomponenten

    KomponenteFeldBeschreibung
    Name_port._protocol.domain_443._tcp.example.com
    UsageZertifikatsverwendungstyp0, 1, 2 oder 3
    SelectorWas abgeglichen wird0 (vollständiges Zertifikat) oder 1 (öffentlicher Schlüssel)
    Matching TypeHash-Algorithmus0 (exakt), 1 (SHA-256), 2 (SHA-512)
    Certificate DataHash oder ZertifikatHex-kodierte Daten

    Usage-Werte

    WertNameBeschreibung
    0PKIX-TAMuss zur angegebenen CA ketten + PKIX-Validierung bestehen
    1PKIX-EEEnd-Entity-Zertifikat muss übereinstimmen + PKIX-Validierung bestehen
    2DANE-TAMuss zum angegebenen Trust Anchor ketten (ohne PKIX)
    3DANE-EEEnd-Entity-Zertifikat muss exakt übereinstimmen (ohne PKIX)

    Selector-Werte

    WertNameBeschreibung
    0CertVollständiges Zertifikat abgleichen
    1SPKISubjectPublicKeyInfo abgleichen (nur öffentlicher Schlüssel)

    Matching-Type-Werte

    WertNameBeschreibung
    0FullExakte Übereinstimmung (vollständige Daten, kein Hash)
    1SHA-256SHA-256-Hash der ausgewählten Daten
    2SHA-512SHA-512-Hash der ausgewählten Daten

    Häufige Anwendungsfälle

    Webserver DANE-EE (empfohlen)

    Selbstsignierte Validierung über DNS:

    _443._tcp.example.com.    3600    TLSA    3 1 1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

    Usage 3 + Selector 1 + SHA-256 ist die gebräuchlichste Konfiguration.

    Mailserver (SMTP)

    Sichere E-Mail-Zustellung mit DANE:

    _25._tcp.mail.example.com.      3600    TLSA    3 1 1 abc123...
    _465._tcp.mail.example.com.     3600    TLSA    3 1 1 abc123...
    _587._tcp.mail.example.com.     3600    TLSA    3 1 1 abc123...

    XMPP-Server

    _5222._tcp.xmpp.example.com.    3600    TLSA    3 1 1 def456...
    _5269._tcp.xmpp.example.com.    3600    TLSA    3 1 1 def456...

    Mehrere Zertifikate (Rollover)

    Während der Zertifikatserneuerung:

    _443._tcp.example.com.    3600    TLSA    3 1 1 alterzertifikathash...
    _443._tcp.example.com.    3600    TLSA    3 1 1 neuerzertifikathash...

    Eintragsformat

    FeldBeschreibungBeispiel
    Name_port._protocol.domain_443._tcp.example.com
    TypEintragstypTLSA
    UsageZertifikatsverwendung3
    SelectorAbzugleichende Daten1
    Matching TypeHash-Typ1
    Certificate DataHash (hex)e3b0c44...
    TTLGültigkeitsdauer (Sekunden)3600

    TLSA-Daten generieren

    Mit OpenSSL

    SHA-256-Hash des öffentlichen Schlüssels ermitteln (selector=1, matching=1):

    # Aus Zertifikatsdatei
    openssl x509 -in cert.pem -noout -pubkey | \
      openssl pkey -pubin -outform DER | \
      openssl dgst -sha256 -binary | \
      xxd -p -c 256
     
    # Vom Live-Server
    echo | openssl s_client -connect example.com:443 2>/dev/null | \
      openssl x509 -noout -pubkey | \
      openssl pkey -pubin -outform DER | \
      openssl dgst -sha256 -binary | \
      xxd -p -c 256

    SHA-256-Hash des vollständigen Zertifikats ermitteln (selector=0, matching=1):

    openssl x509 -in cert.pem -outform DER | \
      openssl dgst -sha256 -binary | \
      xxd -p -c 256

    Mit ldns-dane

    ldns-dane create example.com 443 3 1 1

    TLSA-Eintrag hinzufügen

    Über das Dashboard

    1. Navigieren Sie zu Ihrer Zone im DNScale-Dashboard
    2. Klicken Sie auf Add Record
    3. Konfigurieren Sie den Eintrag:
      • Name: Geben Sie _443._tcp ein (oder den entsprechenden Port/das Protokoll)
      • Type: Wählen Sie TLSA
      • Usage: Wählen Sie den Zertifikatsverwendungstyp (0-3)
      • Selector: Wählen Sie Vollständiges Zertifikat (0) oder Öffentlicher Schlüssel (1)
      • Matching Type: Wählen Sie SHA-256 (1) oder SHA-512 (2)
      • Certificate Data: Geben Sie den hex-kodierten Hash ein
      • TTL: Setzen Sie die Cache-Dauer (Standard: 3600)
    4. Klicken Sie auf Create Record

    Über die API

    TLSA-Eintrag erstellen:

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_443._tcp",
        "type": "TLSA",
        "content": "3 1 1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "ttl": 3600
      }'

    TLSA für Mailserver erstellen:

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_25._tcp.mail",
        "type": "TLSA",
        "content": "3 1 1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "ttl": 3600
      }'

    API-Antwort:

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "_443._tcp.example.com.",
          "type": "TLSA",
          "content": "3 1 1 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    DANE-Voraussetzungen

    Damit DANE funktioniert, muss Ihre Zone:

    1. DNSSEC-signiert sein - TLSA-Einträge ohne DNSSEC bieten keinen Sicherheitsvorteil
    2. Korrekte TLSA-Einträge haben - Der Hash muss mit dem tatsächlichen Zertifikat/Schlüssel übereinstimmen
    3. Einträge bei Zertifikatswechsel aktualisieren - Neuen Hash vor der Bereitstellung des neuen Zertifikats hinzufügen

    Prozess für den Zertifikatswechsel

    1. Neues Zertifikat generieren
    2. TLSA-Eintrag für den neuen Zertifikats-Hash hinzufügen
    3. Auf DNS-Propagierung warten (mindestens die TTL-Dauer)
    4. Neues Zertifikat auf dem Server bereitstellen
    5. Alten TLSA-Eintrag entfernen
    # Schritt 2: Neuen Hash hinzufügen, alten beibehalten
    _443._tcp.example.com.    3600    TLSA    3 1 1 alterhash...
    _443._tcp.example.com.    3600    TLSA    3 1 1 neuerhash...
     
    # Schritt 5: Alten Hash entfernen
    _443._tcp.example.com.    3600    TLSA    3 1 1 neuerhash...

    Best Practices

    1. DANE-EE (Usage 3) verwenden - Am einfachsten und am häufigsten eingesetzt

    2. Selector 1 (SPKI) verwenden - Überlebt die Zertifikatserneuerung, wenn der Schlüssel wiederverwendet wird

    3. SHA-256 (Matching Type 1) verwenden - Standard und weitgehend unterstützt

    4. Vor der Bereitstellung veröffentlichen - TLSA-Einträge vor der Bereitstellung neuer Zertifikate hinzufügen

    5. Zuerst DNSSEC aktivieren - TLSA ohne DNSSEC ist unsicher

    6. Mehrere Einträge während des Rollovers beibehalten - Dienstunterbrechungen vermeiden

    TLSA-Einträge testen

    # TLSA-Eintrag abfragen
    dig TLSA _443._tcp.example.com
     
    # Mit ldns verifizieren
    ldns-dane verify example.com 443
     
    # Online-Tools
    # - https://dane.sys4.de/
    # - https://internet.nl/

    Verwandte Eintragstypen

    • CAA - Zertifizierungsstellen-Autorisierung
    • TXT - Domain-Verifizierung
    • SSHFP - SSH-Fingerprints (ähnliches Konzept)

    Fazit

    TLSA-Einträge ermöglichen DANE und bieten eine DNS-basierte Zertifikatsvalidierung, die die herkömmliche CA-Überprüfung ergänzen oder ersetzen kann. In Kombination mit DNSSEC bieten TLSA-Einträge einen starken Schutz gegen Man-in-the-Middle-Angriffe. Die intuitive Oberfläche von DNScale macht die Konfiguration von TLSA-Einträgen einfach, mit dedizierten Feldern für Usage-, Selector- und Matching-Type-Parameter.