2015-12-08 11 views
19

Generuję samopodpisany certyfikat SSL z OpenSSL (nie makecert), do użytku w IIS.OpenSSL zawiesza się podczas eksportu PKCS12 z "Ekranem ładowania" do stanu losowego "

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj '//CN=myhost' 

(Podwójny ukośnik jest poprawna. Komenda powyżej nie działa bez tego.)

openssl pkcs12 -export -out key.pfx -inkey key.pem -in cert.pem -name 'myhost' 

Pierwsze działa komenda zakończy się pomyślnie. Jednak drugi utknąć z

Loading 'ekranu' w stan losowej -

używam OpenSSL (1.0.2d), który pochodzi z Git dla Windows (2.6.3). Ktoś doświadcza tego samego problemu?

Wyjaśnienie: Pytanie How to fix "unable to write 'random state' " in openssl opisuje inny - problem z zapisaniem pliku .rnd. Tutaj problem wydaje się generować losowy stan. (. A dopiero w drugiej komendzie)

+0

Czy próbowałeś z innej wersji OpenSSL (mają samodzielny buduje)? – Iansus

+0

Nie. (W końcu użyłem MakeCert zamiast tego.) –

+1

Możliwy duplikat [Jak naprawić "nie można zapisać" stanu losowego "" w openssl] (http://stackoverflow.com/questions/12507277/how-to- fix-able-to-write-random-state-in-openssl). Ponadto w systemie Windows występuje kilka błędów; patrz [Liczby losowe | Problemy z systemem Windows] (https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues) na stronie wiki OpenSSL. Wreszcie, '/ CN = myhost' jest prawdopodobnie błędne; zobacz [Jak utworzyć certyfikat z podpisem własnym z openssl?] (http://stackoverflow.com/a/27931596/608639) – jww

Odpowiedz

74

Spróbuj dodać winpty przed oppenssl:

winpty openssl ... 

lub można uruchomić nową tuleję owiniętą przez winpty:

winpty bash 

w oknach c onsole jest pewien problem z wejściem/wyjściem terminala, więc winpty może pomóc, jeśli jakieś oprogramowanie wymaga zachowania warunkowego.

winpty mi pomóc uruchomić OpenSSL w środowisku:

git version 2.7.3.windows.1 
OpenSSL 1.0.2g 1 Mar 2016 
+0

Dzięki za podpowiedź, że 'cmd' ma pewne problemy. Używanie 'git bash' zadziałało, podczas gdy' cmd' nie eksportował. – JackMorrissey

+0

Dzięki za to. Winpty pracował dla mnie! –

+0

Walczył z tym przez wiele godzin. To jest jedna największa odpowiedź w historii stackoverflow. Dziękuję Ci!! – mtm927

19

znalazłem, że muszę podać hasło PFX w linii poleceń przy użyciu -passout pass:SomePassword - np

openssl pkcs12 -export -out foo_example_com.pfx -inkey foo_example_com.key -in foo_example_com.crt -passout pass:Pa55w0rd 
+0

To nie wyeksportowałoby pliku dla mnie w 'cmd'. Kiedy przełączyłem się na używanie 'git bash', to działało z powodzeniem. – JackMorrissey