EC-Schlüsselgenerator
Erzeuge ein elliptisches Kurvenschlüsselpaar auf P-256, P-384 oder P-521 für ES256-, ES384- oder ES512-Signaturen, ECDH und TLS-Zertifikate. Das Ergebnis enthält den privaten Schlüssel als unverschlüsseltes PKCS #8 PEM, den öffentlichen Schlüssel als SPKI PEM, eine OpenSSH-Zeile vom Typ ecdsa-sha2 für öffentliche Schlüssel mit seinem SHA-256-Fingerabdruck und den JWK-Fingerabdruck nach RFC 7638. Jedes Schlüsselpaar wird neu mit dem crypto-Modul von Node erstellt und niemals gespeichert.
Häufig gestellte Fragen
Welche Kurve sollte ich wählen?
P-256 (auch prime256v1 oder secp256r1 genannt) ist die am weitesten unterstützte Kurve und bietet etwa 128 Bit Sicherheit. P-384 bietet etwa 192 Bit und wird von einigen Regierungsprofilen wie CNSA verlangt. P-521 ist die größte NIST-Kurve und wird seltener unterstützt. Wähle sie daher nur, wenn ein System sie verlangt.
Welcher JWT-Algorithmus passt zu welcher Kurve?
P-256-Schlüssel signieren mit ES256, P-384-Schlüssel mit ES384 und P-521-Schlüssel mit ES512. JOSE ordnet jeden Algorithmus genau einer Kurve zu, daher weist der JWT-Generator Schlüssel mit einer falschen Kurve zurück. Das Ergebnis nennt den passenden Algorithmus für deinen Schlüssel.
Welche Formate werden ausgegeben?
Der private Schlüssel ist als PKCS #8 PEM kodiert (BEGIN PRIVATE KEY), der öffentliche Schlüssel als SubjectPublicKeyInfo PEM (BEGIN PUBLIC KEY) mit benannter Kurve. Außerdem erhältst du die Zeile ecdsa-sha2-nistp256, nistp384 oder nistp521, die OpenSSH in authorized_keys erwartet.
Wie erhalte ich das SEC1-Format (BEGIN EC PRIVATE KEY)?
Einige Tools benötigen noch die ältere SEC1-Kodierung. Führe mit OpenSSL 3 openssl pkey -in key.pem -traditional -out key-ec.pem oder openssl ec -in key.pem -out key-ec.pem aus. Der Schlüssel selbst bleibt gleich.
Kann ich mit diesem Schlüssel eine Zertifikatsignierungsanfrage erstellen?
Ja. Speichere das private PEM und führe openssl req -new -key key.pem -subj "/CN=example.com" -out request.csr aus. Prüfe die Anfrage anschließend mit dem CSR-Decoder. Zertifizierungsstellen akzeptieren P-256- und P-384-Schlüssel für TLS-Zertifikate.
Warum sind EC-Schlüssel kleiner als RSA-Schlüssel?
Elliptische Kurvenkryptografie erreicht dieselbe Sicherheit mit deutlich kürzeren Schlüsseln. Ein P-256-Schlüssel ist daher mit einem 3072-Bit-RSA-Schlüssel vergleichbar. Signaturen sind kürzer und das Signieren geht schneller. Der öffentliche Schlüssel auf P-256 passt in 65 Byte.
Ist der private Schlüssel durch eine Passphrase geschützt?
Nein, er wird unverschlüsselt ausgegeben, damit andere Tools ihn direkt lesen können. Verschlüssele ihn zur Speicherung mit openssl pkey -in key.pem -aes256 -out key-encrypted.pem. Übertrage niemals einen unverschlüsselten privaten Schlüssel in ein Repository.
Wofür wird der JWK-Fingerabdruck verwendet?
Der Fingerabdruck nach RFC 7638 ist ein base64url-SHA-256-Hash der Mitglieder crv, kty, x und y des Schlüssels. Er ist eine stabile Kennung des Schlüssels, die unabhängig vom PEM- oder JWK-Format ist, und eignet sich als kid in JWT-Headern und JWKS-Dokumenten.
Wird das Schlüsselpaar gespeichert?
Nein. Das Paar wird für deine Anfrage im Arbeitsspeicher erzeugt, einmal ausgegeben und niemals protokolliert oder gespeichert. Kopiere beide Schlüssel, bevor du die Seite verlässt, da sie danach nicht erneut angezeigt werden können.
Was ändert das Kommentarfeld?
Es fügt lediglich am Ende der OpenSSH-Zeile für öffentliche Schlüssel eine Kennzeichnung wie user@laptop hinzu, damit der Schlüssel in authorized_keys leicht zu erkennen ist. Fingerabdruck und Schlüsselmaterial bleiben gleich. Der Kommentar darf bis zu 200 Zeichen lang sein.