# DNS, SSL, Redirect & URL — Manual

> Vollständige Funktionsbeschreibung: DNS-Records, SSL-Zertifikate und Header, Redirect-Ketten, URL-Parser, Slug- und SPF-Generator — mit allen Betriebsgrenzen.

Source: https://www.jpkc.com/db/tools/dns-ssl-redirect-url/manual/

Zurück zur Übersicht: [DNS, SSL, Redirect & URL](https://www.jpkc.com/db/tools/dns-ssl-redirect-url/) · Tool live öffnen: [www.jpkc.com/tools/dns-ssl-redirect-url/](https://www.jpkc.com/tools/dns-ssl-redirect-url/)

Dieses Manual beschreibt alle fünf Tabs vollständig: was sie abfragen, wie du die Ergebnisse liest und welche technischen Grenzen gelten. Die Oberfläche des Tools ist auf Englisch — die Tab- und Button-Bezeichnungen stehen deshalb hier in ihrer englischen Original-Schreibweise (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

## Architektur und Grenzen vorab

Drei Tabs (DNS, SSL / Security, Redirect) holen Daten aus dem Netz und laufen daher über die JPKCom-Server; zwei Tabs (URL, SPF — und der Slug-Generator) rechnen rein im Browser.

- **DNS-Abruf:** Ein serverseitiger PHP-Endpunkt löst die Records mit `dns_get_record()` auf und gibt JSON zurück.
- **SSL- und Redirect-Abruf:** Ein serverseitiger cURL-**Proxy** (`p.php`) ruft die Zielseite ab; das Tool wertet die Roh-Daten im Browser aus.
- **Authentifizierung:** Vor jedem Server-Request holt das JavaScript über `p-api.php` ein frisches, tageweise rotierendes Token (gültig in einem **5-Minuten-Fenster**), das Referer-geprüft ist. Diese Endpunkte sind **kein öffentliches API** — sie funktionieren nur aus dem Tool heraus.
- **SSRF-Schutz:** Private, Loopback-, Link-local-, reservierte und CGNAT-Adressen (RFC 1918, 127/8, 169.254/16, 100.64/10, IPv6 `fc00::/7`, `fe80::/10`, `::1`) werden blockiert — beim DNS-Reverse-Lookup, beim SSL-/Redirect-Abruf und bei Redirects auf **jedem Hop erneut**. Erlaubt sind nur `http`/`https`.
- **Limits:** maximal **10 Redirect-Hops** (Schleifen werden erkannt), **15 s** Timeout pro Abruf, maximale URL-Länge **3072 Zeichen**, Domain-Länge **253 Zeichen**. Eine **clientseitige Drossel** lässt nur etwa **1 Anfrage pro Sekunde** zu; im Expert-Modus (siehe unten) entfällt sie.
- **Privatsphäre:** Die geprüfte Domain sieht den JPKCom-Server, nicht deine IP.

### Expert Mode (optional)

Das Tool unterstützt einen optionalen **Expert Mode** über einen selbst betriebenen lokalen Proxy (`LocalProxy` auf `http://127.0.0.1:<port>`). Ist er aktiv, holen **SSL** und **Redirect** ihre Daten über diesen lokalen Proxy statt über den JPKCom-Server, und die clientseitige Drossel entfällt. Die Einrichtung ist fortgeschritten und für den normalen Betrieb nicht nötig; der DNS-Tab nutzt den lokalen Proxy nicht.

## DNS — DNS-Records abfragen

Im **DNS**-Tab gibst du eine Domain (z. B. `example.com`) oder eine IP-Adresse ein und wählst rechts den Record-Typ. Mit **Lookup** fragst du genau diesen Typ ab, mit **Check All** die wichtigsten Typen auf einmal.

### Einzelabfrage (Lookup)

Im Dropdown stehen die Typen **A, AAAA, MX, NS, TXT, CNAME, SOA, SRV, CAA, PTR, NAPTR, ANY**. Das Ergebnis enthält die gefundenen Records mit allen Feldern (z. B. bei MX `pri` und `target`, bei SOA `mname`, `rname`, `serial`, `refresh`, `retry`, `expire`, `minimum-ttl`), die Anzahl der Treffer und einen Zeitstempel.

### Check All — Komplettabfrage

**Check All** fragt nacheinander A, AAAA, CNAME, MX, NS, TXT, SOA, SRV und CAA ab und ergänzt vier Zusatz-Checks, sofern sie etwas finden:

- **www (A)** — der A-Record der `www.`-Subdomain.
- **DMARC (TXT)** — der TXT-Record unter `_dmarc.<domain>`.
- **DKIM (TXT)** — der Record unter `default._domainkey.<domain>`, aber nur, wenn er tatsächlich mit `v=DKIM` beginnt.
- **Wildcard (A)** — geprüft wird, ob eine zufällige Subdomain auflöst; falls ja, wird der Eintrag als `*.<domain>` dargestellt (Hinweis auf einen Wildcard-DNS-Eintrag).

Für IP-Adressen ist **Check All** deaktiviert (Record-Typen gelten nur für Domains).

### Reverse-Lookup (PTR) und IDN

Gibst du eine **IP-Adresse** ins Domain-Feld ein, schaltet das Tool den Record-Typ automatisch auf **PTR** um und baut die Reverse-Adresse (`…in-addr.arpa` für IPv4, `…ip6.arpa` für IPv6). Reverse-Lookups sind **nur für öffentlich routbare IPs** möglich — private, Loopback- und reservierte Bereiche werden abgewiesen. **Internationalisierte Domains** (Umlaute o. Ä.) werden vor der Abfrage nach Punycode umgewandelt; das Ergebnis weist die Unicode- und die Punycode-Form aus.

### Ausgabe: JSON- oder Zone-Ansicht

Standardmäßig erscheint das Ergebnis als **JSON** in einem schreibgeschützten CodeMirror-Editor. **Zone** schaltet auf eine BIND-artige Zonendatei um (ausgerichtete Spalten: Name, TTL, Class, Type, Data). Über die Buttons **Copy** (JSON oder Zone), **JSON** (als Datei speichern) und **Save Zone** sicherst du das Ergebnis.

## SSL / Security — Zertifikat und Header

Im **SSL / Security**-Tab gibst du eine Domain (das `https://` ist vorangestellt) ein und klickst **Check SSL**. Der Server ruft die Seite ab und liefert die Roh-Daten; das Tool baut daraus mehrere Karten:

- **Connection** — URL, ggf. finale URL nach Weiterleitung, IP-Adresse, HTTP-Statuscode und Protokoll-Version (HTTP/1.0, /1.1, /2 oder /3).
- **Certificate** — Common Name, Organisation (falls vorhanden), Aussteller (Issuer), **Valid From** und **Valid Until** mit verbleibenden Tagen (grün, ab ≤ 30 Tagen gelb, abgelaufen rot), **Signature** (Signatur-Algorithmus), **Public Key** (Schlüssel-Algorithmus) und das Verifikations-Ergebnis (`OK` oder ein konkreter Fehlertext wie „Certificate has expired", „Self-signed certificate", „Hostname mismatch").
- **Subject Alternative Names** — alle im Zertifikat hinterlegten DNS-Namen und IP-SANs als Liste.
- **Certificate Chain** — die Kette vom Server-Zertifikat über Intermediate CA(s) bis zur Root CA, je mit Subject und Issuer.
- **Security Headers** — neun Header werden geprüft: `Strict-Transport-Security`, `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options`, `X-XSS-Protection`, `Referrer-Policy`, `Permissions-Policy`, `Cross-Origin-Opener-Policy`, `Cross-Origin-Resource-Policy`. Ein Zähler-Badge zeigt „vorhanden/gesamt" (ab 6 grün, ab 3 gelb, sonst rot). Vorhandene Header werden zusätzlich **inhaltlich validiert** — etwa HSTS auf `max-age` ≥ 1 Jahr und `includeSubDomains`/`preload`, CSP auf `unsafe-inline`/`unsafe-eval`/HTTP-Quellen, `X-Content-Type-Options` auf `nosniff` — und mit OK-, Warn- oder Fehler-Badge markiert. Fehlende Header bekommen einen kurzen Hinweis, wovor sie schützen würden.
- **Timing** — DNS Lookup, TCP Connect, SSL Handshake, Pretransfer, Start Transfer und Total.
- **Server** — Server-, X-Powered-By-, Via-, X-Cache-, Cf-Ray-, X-Served-By- und Content-Type-Header, soweit vorhanden.
- **Raw Headers** — die kompletten Roh-Antwort-Header, aufklappbar.

Schlägt die Verbindung fehl, erscheint statt der Karten ein Fehler-Alert mit cURL-Fehlercode und -beschreibung; SSL-spezifische Fehler werden als solche markiert. Mit **Copy JSON** / **Save JSON** sicherst du das Ergebnis. Der SSL-Abruf läuft mit **15 s** Timeout.

## Redirect — Weiterleitungskette verfolgen

Im **Redirect**-Tab gibst du eine URL ein und klickst **Trace Redirects**. Der Server folgt der Kette **Hop für Hop** (ohne `Location` automatisch zu folgen, sondern jeden Schritt einzeln), bis zu **10 Hops**. Pro Hop siehst du:

- **Hop-Nummer** und die URL dieser Station,
- den **Statuscode** (farbig nach 2xx/3xx/4xx/5xx),
- ein **HTTPS- oder HTTP-Badge**,
- die **IP-Adresse**, das **Timing** und den **Server**-Header,
- bei HTTPS-Hops den Zertifikats-Namen (`certCN`) mit Restlaufzeit in Tagen,
- die **Roh-Header** dieses Hops (aufklappbar).

Relative `Location`-Weiterleitungen werden zu absoluten URLs aufgelöst. Wird eine bereits besuchte URL erneut angesteuert, bricht das Tool mit dem Hinweis **„Redirect loop detected"** ab. Ein Hop, der auf eine private/interne Adresse zeigt, wird als **„Blocked redirect target"** abgewiesen. Der letzte Hop (kein 3xx mehr) wird als Endpunkt markiert. **Copy JSON** / **Save JSON** sichern die ganze Kette.

## URL — Parser und Slug-Generator

Dieser Tab arbeitet **vollständig im Browser**, ohne Server-Abruf.

### URL-Parser

Mit **Parse URL** zerlegt das Tool eine Adresse über die JavaScript-URL-API in ihre Bestandteile: `href`, `protocol`, `hostname` (bei IDN zusätzlich `hostname (Unicode)`), `port` (oder „(default)"), `pathname`, `search`, `hash`, `origin`, `host`, `username` und `password` (maskiert als `***`). Fehlt ein Protokoll, wird `https://` ergänzt. Darunter listet eine Tabelle alle **Query-Parameter** als Schlüssel-Wert-Paare, und ein Encoding-Block zeigt die Adresse `encodeURI`- und `decodeURIComponent`-aufbereitet. Alle Felder sind editierbar; **Copy JSON** kopiert die Struktur.

### URL-Slug-Generator

Der **URL Slug Generator** wandelt beliebigen Text live (während du tippst) in einen URL-tauglichen Slug. Er behandelt deutsche Umlaute (ä→ae, ö→oe, ü→ue, ß→ss), zerlegt akzentuierte Zeichen per Unicode-Normalisierung (é→e, ñ→n …), ersetzt alle übrigen Sonderzeichen durch den **Separator** (`-` oder `_`), fasst Mehrfach-Separatoren zusammen und schneidet sie an den Rändern ab. Eine Zeichen-Zählung steht darunter; **Copy** kopiert den Slug.

## SPF — SPF-TXT-Record bauen

Der **SPF**-Tab erzeugt live einen gültigen `v=spf1`-Record — ebenfalls rein clientseitig. Du konfigurierst links das Formular, rechts aktualisiert sich der Record sofort.

- **All Policy** (Catch-all): `-all` (Fail, für Produktion empfohlen), `~all` (SoftFail, Default, fürs Testen), `?all` (Neutral), `+all` (Pass — ausdrücklich nicht empfohlen) oder „None" (weglassen). Unter dem Auswahlfeld erklärt ein Hinweistext die gewählte Policy.
- **Own Mail Servers** — Checkboxen für `a` (der A-Record der Domain sendet Mail) und `mx` (die MX-Server senden Mail; standardmäßig aktiv).
- **Mail Providers** — 16 Ein-Klick-Presets: Google, Microsoft 365, Amazon SES, SendGrid, Mailchimp, Postmark, Brevo, Mailgun, Zoho, HubSpot, Salesforce, Mailjet, SparkPost, Klaviyo, Fastmail und Proton Mail. Jedes Preset fügt seinen `include:`-Mechanismus hinzu.
- **Custom include:** und **IP Addresses** — eigene `include:`-Zeilen sowie beliebig viele `ip4:`-/`ip6:`-Einträge.
- **Advanced** — ein `redirect=` (verweist die Policy auf eine andere Domain; ersetzt die All-Policy) und ein freies Feld für zusätzliche, space-getrennte Mechanismen.

Rechts zeigt eine Statistik-Zeile zwei Live-Werte: **DNS lookups** (`x/10`, ab 8 gelb, über 10 rot) und **Length** (Zeichen, ab 300 gelb, über 450 rot). `ip4:`/`ip6:` kosten keine Lookups, alles andere je einen. Der Generator warnt bei mehr als **10 DNS-Lookups**, bei über **450 Zeichen**, bei `+all` und beim Konflikt `redirect=` plus All-Policy. Eine **DNS-Entry**-Karte fasst zusammen, wie der Record einzutragen ist (Typ `TXT`, Host `@`, der Wert, TTL `3600`). **Copy** kopiert den Record; **Verify DNS** springt in den DNS-Tab und stellt dort den Typ auf `TXT`, damit du deinen veröffentlichten Record direkt nachschlagen kannst.

## Betriebsgrenzen — kompakt

- **Privatsphäre:** Abrufe laufen über den JPKCom-Server; die Zielseite sieht nicht deine IP.
- **SSRF-/Private-IP-Schutz:** private, lokale, reservierte und CGNAT-Adressen werden geblockt (DNS-Reverse, SSL, jeder Redirect-Hop); nur `http`/`https`.
- **Limits:** max. 10 Redirect-Hops, 15 s Timeout pro Abruf, URL ≤ 3072 Zeichen, Domain ≤ 253 Zeichen.
- **Drossel:** clientseitig ~1 Server-Anfrage pro Sekunde (im Expert-Modus aus).
- **Token:** tageweise rotierend, 5-Minuten-Fenster, Referer-geprüft — kein öffentliches API.
- **Ohne Server nutzbar:** URL-Parser, Slug-Generator und SPF-Generator rechnen komplett im Browser.

Für das große Bild und die Zielgruppen siehe die [Übersicht](https://www.jpkc.com/db/tools/dns-ssl-redirect-url/). Konkrete Abläufe stehen in den [Beispielen](https://www.jpkc.com/db/tools/dns-ssl-redirect-url/examples/), Kniffe in den [Tipps & Tricks](https://www.jpkc.com/db/tools/dns-ssl-redirect-url/tips/). Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/dns-ssl-redirect-url/).

