Kommentarer
- Dette ser ut til å være mer et spørsmål for Stack Overflow. Se. f.eks. stackoverflow.com/questions/17143606/…
- Det ville være rimelig å implementere med openssl api så mye funksjonalitet som mulig.
Svar
Det er veldig enkelt å gjøre dette med openssl.
Si foo.crt er din crt-fil. Deretter vil
$ openssl x509 -in foo.crt -text -noout
skrive ut all nødvendig informasjon (utsteder, pkey: modul rsa og eksponent, signaturalgoritme osv.) I tekstformat.
Hvis du gir
$ openssl x509 -in foo.crt -text -noout > foo.txt
, vil du lagre den forrige informasjonen i foo.txt-filen.
For å svare på spørsmålet ditt
Kan du fortelle meg hvordan kan jeg hente ut denne offentlige offentlige nøkkelen klar til bruk i heksadesimalt (byte) format?
en måte å gjøre dette på er å først eksportere den offentlige nøkkelen og deretter konvertere den til hexformat
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Nå foo-offentlig- hex inneholder nøkkelen din i hex-format.
Så skrev du
Jeg vet at i denne filen er p, q og resten, men Jeg vil ha den endelige offentlige nøkkelen klar til bruk.
Jeg er ikke sikker på at jeg følger deg … den private nøkkelen er ikke i .crt-filen, men i .key-fil og server sendte den ikke til klienten.
Hvis foo.key er din private nøkkel, så gir du
$openssl rsa -noout -text -in foo.key
du vil se den private eksponenten og primtallene p, q i hex-form.
Kommentarer
- Nitpick: openssl kommandolinje er tilgjengelig for og fungerer det samme på alle Unixes og Windows, ikke bare LInux. VMS er litt annerledes, men ikke mye.