2013-06-17 17 views
26

Używam poniższej komendy openssl do przechowywania mojego klucza publicznego do pliku .pem.Jak zapisać klucz publiczny z certyfikatu w formacie .pem

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

Ale kiedy próbuję użyć tego polecenia, to jest przechowywanie wszystkich informacji o certyfikacie w pliku mypubkey.pem.

Widziałem, że mogę uratować mojego klucza publicznego przy użyciu

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

Ale to jest rzucanie błąd. Nie mogę użyć operatora ">".

+0

Stack Overflow to strona z pytaniami do programowania i programowania. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym rozwiązaniem będzie [Super użytkownik] (http://superuser.com/) lub [Unix i Linux Stack Exchange] (http://unix.stackexchange.com/). Zobacz także [Gdzie mogę zamieszczać pytania na temat Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

Odpowiedz

74

Istnieje kilka sposobów, aby to zrobić.

Po pierwsze, zamiast iść do polecenia openssl trybie szybkim, wpisz wszystko na jednej linii poleceń z wiersza systemu Windows:

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

Jeśli z jakiegoś powodu trzeba użyć wiersza polecenia openssl, wpisz wszystko aż do ">". Następnie OpenSSL wydrukuje informacje o kluczu publicznym na ekranie. Następnie możesz go skopiować i wkleić do pliku o nazwie pubkey.pem.

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

wyjściowa będzie wyglądać mniej więcej tak:

-----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

Ty za odpowiedź. Drugie podejście jest dopuszczalne. Ale chcę go zapisać za pomocą wiersza polecenia. Nie mam zainstalowanego openssl w moim systemie. Używam plików binarnych bezpośrednio do uruchomienia wiersza polecenia openssl. Wersja, której używam, to openssl-0.9.8k_WIN32. TAK, gdy próbuję uruchomić pierwsze polecenie w oknach, pojawia się błąd. – Ankit

+1

Jakiego błędu widzisz po uruchomieniu 1. polecenia? Czy otrzymałeś tutaj wersję openssl -> [https://code.google.com/p/openssl-for-windows/](https://code.google.com/p/openssl-for-windows/) lub gdzieś indziej? – gtrig

+0

Tak używam tej samej wersji openssl. – Ankit

5

Nie można używać > w interaktywnym wierszu OpenSSL. Zamiast tego użyj argumentu -out, aby zapisać dane wyjściowe do pliku. Na przykład.

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

jeśli jest to klucz RSA

openssl rsa -pubout -in my_rsa_key.pem 

jeśli jest to potrzebne w formacie dla OpenSSH, proszę zobaczyć Use RSA private key to generate public key?

Zauważ, że klucz publiczny jest generowany z klucza prywatnego i SSH zastosowań plik tożsamości (plik klucza prywatnego) do generowania i wysyłania klucza publicznego do serwera i odblokowania zaszyfrowanego tokena z serwera za pomocą klucza prywatnego w pliku tożsamości.

Powiązane problemy