2013-12-07 36 views
24

Piszę aplikację na Androida, która wymaga certyfikatu SSL dla niektórych żądań internetowych. Muszę zbudować plik PKCS12 (.pfx) z certyfikatem samopodpisanym.Utwórz plik PKCS # 12 z samopodpisanym certyfikatem przez OpenSSL w systemie Windows dla mojej aplikacji Android

Zdecydowałem się użyć biblioteki OpenSSL, ale nie mogłem jej zbudować na moim komputerze (platforma Windows x64). Chcę to zrobić bez instalacji ActivePerl. Kto wie, jak łatwo to zbudować?

Próbowałem zbudować plik PKCS12 z OpenSSL na moim komputerze znajomych (z OpenSSL, Linux), ale nic nie dostaję. Czy ktoś może mi pomóc, i opisać sekwencję działań, aby wygenerować plik PKCS12 za pomocą klucza prywatnego i certyfikatu publicznego z własnym podpisem?

+1

Czy korzystasz z platformy Eclipse dla systemu Android? –

+0

@ Plo_Koon Tak, używam Eclipse-ADK –

+3

Aby wygenerować samopodpisany certyfikat, możesz użyć programu o nazwie "keytool", który jest dostarczany z dowolną wersją Java SDK. Zobacz ten link https: //community.jboss. org/wiki/GeneratingSelfSignedCertificateWithKeytool –

Odpowiedz

66

Projekt instalacji Win32 OpenSSL jest poświęcony zapewnieniu prostej instalacji OpenSSL. Jest łatwy w konfiguracji i łatwy w obsłudze dzięki prostemu, efektywnemu instalatorowi. Nie musisz niczego kompilować ani przeskakiwać żadnych obręczy, wystarczy kliknąć kilka razy i jest zainstalowany, pozostawiając ci do wykonania prawdziwej pracy. Możesz go uzyskać here. W twoim przypadku potrzebujesz instalatora Win64 OpenSSL v1.0.1e.

Poniższe instrukcje pokazują, jak wygenerować klucz prywatny PKCS # 12 i plik certyfikatu publicznego, który jest odpowiedni do użycia z HTTPS, FTPS. Te instrukcje zakładają, że pobrałeś i zainstalowałeś binarną dystrybucję systemu Windows OpenSSL.

1.Generate klucz prywatny RSA:

>C:\Openssl\bin\openssl.exe genrsa -out <Key Filename> <Key Size>

Gdzie:

<Key Filename> jest pożądana nazwa pliku klucza prywatnego

<Key Size> jest pożądaną długość klucz 1024, 2048 lub 4096

Na przykład wpisz:

>C:\Openssl\bin\openssl.exe genrsa -out my_key.key 2048.

2. wygenerować żądanie podpisania certyfikatu:

w wersji 0.9.8h i nowszych:

>C:\Openssl\bin\openssl.exe req -new -key <Key Filename> -out <Request Filename> -config C:\Openssl\bin\openssl.cfg

Gdzie:

<Key Filename> to nazwa pliku wejściowego uprzednio wygenerowane klucz prywatny

<Request Filename> to nazwa pliku wyjściowego żądania podpisania certyfikatu

Na przykład wpisz:

>C:\Openssl\bin\openssl.exe req -new -key my_key.key -out my_request.csr -config C:\Openssl\bin\openssl.cnf

3. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby wymagane informacje żądania certyfikatu.

4.Wygenerować samodzielnie podpisanego certyfikatu publicznego w oparciu o wniosek:

>C:\Openssl\bin\openssl.exe x509 -req -days 3650 -in <Request Filename> -signkey <Key Filename> -out <Certificate Filename>

Gdzie:

<Request Filename> to nazwa pliku wejściowego żądanie podpisania certyfikatu

<Key Filename> jest nazwa pliku wejściowego uprzednio wygenerowany klucz prywatny

<Certificate Filename> to nazwa pliku wyjściowego certyfikatu publicznego

Na przykład wpisz:

>C:\Openssl\bin\openssl.exe x509 -req -days 3650 -in my_request.csr -signkey my_key.key -out my_cert.crt

5. Generowanie pliku PKCS # 12:

>C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in <Public Certificate Filename> -inkey <Private Key Filename> -out <PKCS#12 Filename> -name "<Display Name>"

Gdzie:

<Public Certificate Filename> to nazwa pliku wejściowego certyfikat publiczny, w formacie PEM

<Private Key Filename> to nazwa wejściowa klucza prywatnego

<PKCS#12 Filename> jest nazwa pliku wyjściowego z PKCS # 12 format pliku

<Display Name> jest wymagana nazwę, która będzie czasami być wyświetlane w interfejsach użytkownika.

Na przykład wpisz:

>C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in my_cert.crt -inkey my_key.key -out my_pkcs12.pfx -name "my-name"

6. (Opcjonalnie) Usuń niepotrzebne pliki.

W tym momencie, trzeba tylko PKCS # plik formatu 12, więc można usunąć żądanie podpisania certyfikatu Plik (.csr), klucz prywatny (.key), a plik certyfikatu publicznego (.crt).

Powstały plik formatu PKCS # 12 może być teraz używany w ramach bezpiecznego serwera FTP - FIPS.

Otrzymany plik formatu PKCS # 12 (.pfx) może teraz być używany z przeglądarką Firefox w wersji 34.0.5.

+1

Wielkie dzięki za pomoc! –

2

Jeśli spojrzysz na tę stronę "http://www.sslshopper.com/article-most-common-openssl-commands.html", zawiera ona większość popularnych poleceń, których będziesz szukać. Musiałem to zrobić ostatnio dla programu partnerskiego amazon i znalazłem swoją stronę również pomocną (http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert).By sposób, musisz zainstalować openssl, aby to uruchomić (patrz: http://slproweb.com/products/Win32OpenSSL.html).

+0

Dziękuję za odpowiedź i przydatne linki) –