Wenn Sie nach der Antwort von Julien Kronegg diesen Fehler bekommen, weil Ihre Datei ein PKCS # 1-Format hat, können Sie sie folgendermaßen in eine PKCS # 8-Datei konvertieren:
Speichern Sie zuerst Ihre PKCS # 1-Schlüsseldatei in einer Datei namens priv1.pem
:
Führen Sie dann den folgenden Befehl aus:
%Vor% Dies erzeugt eine Datei namens priv8.pem
, die Ihre Schlüsseldatei im PKCS # 8-Format ist:
Ich benutze dies von Java wie folgt:
%Vor%Hier ist ein geänderter org.apache.jmeter.protocol.oauth.sampler.PrivateKeyReader-Code, der nur Java-Laufzeit verwendet. Es funktioniert für mich, es kann PKCS # 1 oder PKCS # 8 private Schlüsseldatei laden und gibt eine PrivateKey-Klasse zurück. (Bitte lassen Sie es mich wissen, wenn ich beim Kopieren / Einfügen irgendetwas vermasselt habe).
Benutze es so: PrivateKey pk = (neuer PrivateKeyReader ("/ Pfad / zu / meinedatei.der")). GetPrivateKey ();
%Vor% Sie erhalten diesen Fehler, weil Sie eine PKCS # 8-Schlüsseldatei lesen, aber Ihre Datei ein PKCS # 1-Format hat (PKCS # 1 hat den Header BEGIN RSA PRIVATE KEY
, während PKCS # 8 den Header BEGIN PRIVATE KEY
hat).
Um PKCS # 1- und PKCS # 8-PEM-Dateien lesen zu können, verwende ich den Quellcode von Apache JMeters %Co_de% :
PrivateKey pk = (neuer PrivateKeyReader ("/ Pfad / zu / meinedatei.der")). getPrivateKey ();
Alternativ können Sie mykey.pem in das DER-Format konvertieren und Ihren vorhandenen Code verwenden. Folgendes ist der openssl Befehl, um das zu tun
%Vor%Die neue formatierte Datei sieht etwas wie
aus %Vor%Tags und Links java encryption openssl rsa