Wie exportiere ich den öffentlichen Schlüssel aus der Zertifikatsignierungsanforderung?

Ich schreibe den Android-Code, um ein RSA-Schlüsselpaar und eine Zertifikatsignieranforderung (csr.txt) Hier ist mein csr-Inhalt:

-----BEGIN CERTIFICATE REQUEST-----
MIIBojCCAQ0CAQAwQjEVMBMGA1UEAwwMdGhhbmhsYW0uY29tMQwwCgYDVQQKDANC
S1UxGzAZBgNVBAsMElRlbGVjb20gRGVwYXJ0bWVudDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEA0beMquCjIe3ILA8RpTTW/Xb+jXOz7g+xQJtBPL+fih8sB/d6
9u93nGGg+Dra1HS6bm2gns0J/Zm9A/AJgB3zAW5hpX0bgL2BJ/dcnjPMh3/peNWs
elu0sMOqYARFxCbKc3YPC04ZKp6RKgar5AhZAoOKuQLZtmb4EquxoM7CTqECAwEA
AaAiMCAGCSqGSIb3DQEJDjETMBEwDwYDVR0TAQH/BAUwAwEB/zALBgkqhkiG9w0B
AQsDgYEAMvdLO8e7llE+IG4smDtz8A9edTqbbglUMPMASVTEn1F7A1lu1u79depE
rNZtk983qflG7I57cvKS65O0G+Qo0xmvRNLFVw6iETwR16uPx3ffisDBPWJBIySI
Slh1mPRLgky1+EQezWzG5I7Nozo1DDk2skjbB4v7acFBcRoSl6Y=
-----END CERTIFICATE REQUEST-----

Ich habe einen Link gefunden, der meine CSR-Datei dekodieren kann: geben Sie hier die Bildbeschreibung ein

Wie kann ich dann openssl verwenden, um den Pubic-Schlüssel aus dieser CSR-Datei nach publickey zu exportieren?pem?

Welcher Befehl kann das tun?

Danke für advandce.

Author: mat, 2017-07-23

2 answers

, um nur den öffentlichen Schlüssel in eine lokale Datei mit dem Namen auszugeben publickey.pem:
openssl req -in csr.txt -noout -pubkey -out publickey.pem

Sie können den (PEM-codierten) Schlüssel auf dem Terminal anzeigen, ohne ihn in eine Datei einzufügen, indem Sie das letzte Argument löschen:
openssl req -in csr.txt -noout -pubkey

Hinweis: Die Option -noout ist erforderlich, da standardmäßig die gesamte CSR in der Ausgabedatei abgelegt wird, während Ihre Frage nur nach dem öffentlichen Schlüssel fragt.

Bonuspunkte: Um in die BASE64-codierte PEM-Ausgabe zu schauen und den tatsächlichen öffentlichen Schlüssel im Hex-Format anzuzeigen, leiten Sie ihn an die pkey Funktion von openssl:
openssl req -in csr.txt -noout -pubkey | openssl pkey -pubin -noout -text

 11
Author: Liam Dennehy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-07-24 14:27:24

openssl req -in file.csr -pubkey -out pubkey.pem

 3
Author: mat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-07-23 07:43:33