2013-06-17 7 views
26

Я использую приведенную ниже команду openssl для хранения моего открытого ключа в файле .pem.Как сохранить открытый ключ из сертификата в формате .pem

openssl> x509 -in E:/mycert.pem -pubkey -out E:/mypubkey.pem 

Но когда я пытаюсь использовать эту команду, она хранит всю информацию сертификата в файле mypubkey.pem.

Я видел, что я могу спасти мой открытый ключ, используя

openssl> x509 -pubkey -noout -in cert.pem > pubkey.pem 

Но это бросает ошибку. Я не могу использовать оператор «>».

+0

Stack Overflow - это сайт для вопросов программирования и развития. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше сказать [Суперпользователь] (http://superuser.com/) или [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/). Также см. [Где я пишу вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

ответ

74

Есть несколько способов сделать это.

Во-первых, вместо того, чтобы идти в команду OpenSSL оперативного режима, просто введите все на одной командной строке из командной строки с Windows:

E:\> openssl x509 -pubkey -noout -in cert.pem > pubkey.pem 

Если по какой-то причине, вы должны использовать команду OpenSSL подсказку, просто введите все до «>». Затем OpenSSL распечатает информацию об открытых ключах на экране. Затем вы можете скопировать его и вставить в файл pubkey.pem.

openssl> x509 -pubkey -noout -in cert.pem 

Вывод будет выглядеть примерно так:

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO 
3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX 
7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS 
j+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd 
OrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ 
5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl 
FQIDAQAB 
-----END PUBLIC KEY----- 
+0

Тай для ответа. Второй подход приемлем. Но я хочу сохранить его в самой командной строке. У меня нет установленной в моей системе openssl. Я использую двоичные файлы непосредственно для запуска командной строки openssl. Версия, которую я использую, - openssl-0.9.8k_WIN32. SO, когда я пытаюсь запустить 1-ю команду в приглашении Windows, она показывает ошибку. – Ankit

+1

Какая ошибка вы видите при запуске 1-й команды? Вы получили версию openssl здесь -> [https://code.google.com/p/openssl-for-windows/](https://code.google.com/p/openssl-for-windows/) или где-нибудь еще? – gtrig

+0

Да, я использую ту же версию openssl. – Ankit

5

Вы не можете использовать > в интерактивном режиме OpenSSL. Вместо этого используйте аргумент -out для записи вывода в файл. Например.

openssl> x509 -pubkey -noout -in cert.pem -out pubkey.pem 
1

, если он является одним из ключевых RSA

openssl rsa -pubout -in my_rsa_key.pem 

, если вам это нужно в формате OpenSSH, смотрите Use RSA private key to generate public key?

Обратите внимание, что открытый ключ генерируется из секретного ключа и SSH использования файл идентификатора (файл секретного ключа) для генерации и отправки открытого ключа на сервер и дешифрования зашифрованного токена с сервера через закрытый ключ в файле идентификации.

Смежные вопросы