Kommentare
- Dies scheint eher eine Frage für den Stapelüberlauf zu sein. Sehen. z.B. stackoverflow.com/questions/17143606/…
- Es wäre sinnvoll, mit zu implementieren openssl api bietet so viele Funktionen wie möglich.
Antwort
Mit openssl ist dies sehr einfach.
Angenommen, foo.crt ist Ihre CRT-Datei. Anschließend druckt
$ openssl x509 -in foo.crt -text -noout
alle erforderlichen Informationen (Aussteller, Schlüssel: Modul rsa und Exponent, Signaturalgorithmus usw.) im Textformat.
Wenn Sie
$ openssl x509 -in foo.crt -text -noout > foo.txt
angeben, speichern Sie die vorherigen Informationen in der Datei foo.txt.
Um Ihre Frage zu beantworten
Können Sie mir sagen, wie ich aus dieser Datei einen öffentlichen Schlüssel extrahieren kann, der im hexadezimalen Format (Byte) verwendet werden kann?
Eine Möglichkeit, dies zu tun, besteht darin, zuerst den öffentlichen Schlüssel zu exportieren und ihn dann in die Hex-Form zu konvertieren.
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Jetzt foo-public- hex enthält deinen pkey im hex-Format.
Dann hast du geschrieben
Ich weiß, dass in dieser Datei p, q und rest aber ist Ich möchte, dass der endgültige öffentliche Schlüssel verwendet werden kann.
Ich bin nicht sicher, ob ich Ihnen folge … der private Schlüssel befindet sich nicht in der CRT-Datei, sondern in Die Schlüsseldatei und der Server werden nicht an den Client gesendet.
Wenn foo.key Ihr privater Schlüssel ist, geben Sie ihn an
$openssl rsa -noout -text -in foo.key
Sie sehen den privaten Exponenten und die Primzahlen p, q in hexadezimaler Form.
Kommentare
- Nitpick: Die Befehlszeile openssl ist für alle Unixe und Windows verfügbar und funktioniert unter allen, nicht nur unter LInux. VMS ist ein bisschen anders, aber nicht viel.