Was ein JWT-Schluesselpaar ist
Ein JWT ist ein Authentifizierungs-Token, das dein Server eingeloggten Usern gibt, damit sie sich bei jedem spaeteren Request ausweisen. Der Server signiert mit Private Key, der Client schickt es zurueck, jeder Service mit passendem Public Key kann pruefen, dass die Signatur echt war und der Payload unterwegs nicht veraendert wurde.
Damit das alles funktioniert, brauchst du ein Schluesselpaar: einen Private Key auf dem signierenden Server, und einen Public Key, den du teilst (oft als JWK in einem unter `/.well-known/jwks.json` veroeffentlichten Dokument), damit Verifier die Signatur pruefen koennen, ohne das Geheimnis je zu sehen.
Das Tool generiert das Schluesselpaar fuer jeden modernen Signing-Algorithmus: RS256/RS384/RS512 (klassisch RSA), PS256 (RSA-PSS, die sicherere RSA-Variante), ES256/ES384/ES512 (Elliptische Kurve), oder EdDSA (Ed25519, kleinste und schnellste). Du kriegst die Keys in PEM und JWK, plus ein signiertes Beispiel-JWT, das du im JWT-Decoder sofort dekodieren kannst. Server-seitig mit Nodes `crypto` generiert, nie gespeichert.
So nutzt du das Tool
- Algorithmus waehlen. RS256 ist Default fuer die meisten Setups (Auth0, Okta, Keycloak und AWS Cognito defaulten alle drauf). ES256 gibt viel kleinere Tokens. EdDSA ist der moderne Liebling: kleinste Keys, schnellstes Signieren, einfachste Implementierung.
- Bei RSA (RS256, RS384, RS512, PS256): Key-Groesse waehlen. 2048 Bit sinnvoller Default. 3072 und 4096 werden exponentiell langsamer mit vernachlaessigbarem realen Sicherheitsgewinn.
- Bei EC (ES256, ES384, ES512): Kurve wird automatisch gewaehlt (P-256, P-384, P-521 jeweils). Das sind die einzigen Kurven, die RFC 7518 fuer jeden Algorithmus erlaubt.
- Bei EdDSA: immer Ed25519, die von RFC 8037 fuer JWS standardisierte Kurve. Hier nix einzustellen.
- Klick Generieren. Wir geben: Private Key in PEM, Public Key in PEM, Private Key als JWK, Public Key als JWK, plus ein signiertes Beispiel-JWT mit kleinem Payload (`sub: user-123`, 1h gueltig), damit du Ende-zu-Ende pruefen kannst.
- Speicher den Private Key jetzt. Wir speichern ihn nicht. Tab schliessen heisst weg fuer immer. Installier ihn auf deinem Auth-Server, API-Gateway oder wo du Tokens ausstellst.
- Veroeffentliche den Public Key als JWKS-Dokument unter `https://deine-domain.de/.well-known/jwks.json`. Die meisten Libraries (jose, jsonwebtoken, PyJWT, Microsoft.IdentityModel) koennen diese URL automatisch fetchen und cachen.
- Klick In Decoder oeffnen neben dem Beispiel-JWT, um Header, Payload und Signatur live im JWT-Decoder zu sehen. Pruef, dass die kid im Header zur veroeffentlichten JWK passt.
Wann das nuetzlich ist
Sechs typische Situationen, in denen ein frisches JWT-Signing-Schluesselpaar zahlt:
- Neuen Auth-Service einrichten (Keycloak, Ory Hydra, Auth0 self-hosted, eigener OAuth-Server, internes API-Gateway). Du brauchst das Schluesselpaar, bevor du das erste Token ausstellen kannst.
- Von HS256 zu RS256/ES256/EdDSA migrieren. HS256 nutzt ein Shared Secret, jeder Verifier haelt die Signing-Power. Asymmetrische Algorithmen lassen dich den Private Key auf dem Auth-Server halten und Public Keys frei verteilen. Standard-Upgrade-Pfad fuer Systeme, die ueber einen Service hinauswachsen.
- Key-Rotation alle 3-12 Monate als Security-Hygiene. Neuen Key unter neuer kid generieren, beide im JWKS veroeffentlichen, Signer auf neuen Key umschalten, alten nach Karenzzeit zurueckziehen.
- Vermuteter Key-Kompromiss. Server-Breach, versehentliches Commiten der PEM in oeffentliches Repo, Ex-Mitarbeiter mit Key-Zugriff. Neues Paar, rotieren, alte kid in JWKS revoken, aktive Sessions force-logouten.
- Multi-Issuer-Architekturen. Jeder Service stellt eigene Tokens aus; jeder kriegt eigenes Paar, damit Kompromiss-Radien unabhaengig sind.
- Tests und Demos. Funktionierendes JWT zum Testen einer Verifier-Library? Paar generieren, Sample signieren, du hast ein echtes Ende-zu-Ende-Beispiel in einem Klick.
Verwandte Tools: JWT-Decoder, DKIM-Schluesselpaar-Generator, bcrypt-Verify, Passwort-Hash, UUID-Generator.