Utwórz plik PKCS#12 z certyfikatem podpisanym przez OpenSSL w systemie Windows dla mojej aplikacji na Androida

Piszę aplikację na Androida, która wymaga certyfikatu SSL dla niektórych żądań internetowych. Muszę zbudować plik PKCS12 (.pfx) z własnoręcznie podpisanym certyfikatem.

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 zna łatwy sposób na jego zbudowanie?

Próbowałem zbudować plik PKCS12 z OpenSSL na moim komputerze znajomych (z OpenSSL, Linux), ale nic nie dostałem. Can czy ktoś mi pomoże i opisać sekwencję czynności generowania pliku PKCS12 z kluczem prywatnym i własnym podpisem publicznym?

Author: Robert Weber, 2013-12-07

3 answers

Projekt instalacji OpenSSL w Win32 jest dedykowany do zapewnienia prostej instalacji OpenSSL. Jest łatwy w konfiguracji i łatwy w użyciu dzięki prostemu, skutecznemu instalatorowi. Nie musisz niczego kompilować ani przeskakiwać przez obręcze, wystarczy kliknąć kilka razy i jest zainstalowany, pozostawiając cię do prawdziwej pracy. Możesz go dostać tutaj . W Twoim przypadku potrzebujesz Win64 OpenSSL v1.0.1e Instalatora.

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

1.Generowanie klucza prywatnego RSA:

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

Gdzie:

<Key Filename> jest żądaną nazwą pliku klucza prywatnego

<Key Size> jest żądaną długością klucza 1024, 2048 lub 4096

Na przykład, Typ:

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

2. Generowanie podpisywania certyfikatu Zapytanie:

W wersji 0.9.8 h i nowszej:

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

Gdzie:

<Key Filename> jest nazwą pliku wejściowego wcześniej wygenerowanego klucza prywatnego

<Request Filename> jest nazwą pliku wyjściowego żądania podpisania certyfikatu

Na przykład, Typ:

>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 monitami wyświetlanymi na ekranie, aby uzyskać wymagane informacje o żądaniu certyfikatu.

4. Wygenerować samodzielnie podpisany publiczny certyfikat na podstawie zapytanie:

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

Gdzie:

<Request Filename> jest nazwą pliku wejściowego żądania podpisania certyfikatu

<Key Filename> jest nazwą pliku wejściowego wcześniej wygenerowanego klucza prywatnego

<Certificate Filename> jest nazwą pliku wyjściowego certyfikatu publicznego

Na przykład, Typ:

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

5. Wygeneruj plik 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> jest nazwą pliku wejściowego certyfikatu publicznego, w Format PEM

<Private Key Filename> jest nazwą pliku wejściowego klucza prywatnego

<PKCS#12 Filename> jest nazwą pliku wyjściowego pliku formatu pkcs#12

<Display Name> jest pożądaną nazwą, która czasami będzie wyświetlana w interfejsach użytkownika.

Na przykład, Typ:

>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 potrzebujesz tylko Pliku w formacie PKCS#12, więc możesz usunąć plik żądania podpisania certyfikatu (.csr), klucz prywatny (.key) Plik, oraz plik certyfikatu publicznego (.crt).

Wynikowy plik w formacie PKCS#12 może być teraz używany w bezpiecznym serwerze FTP-FIPS.

Wynikowy format PKCS#12 (.pfx) plik może być teraz używany z przeglądarką Firefox ver 34.0.5.

 79
Author: Plo_Koon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-29 03:15:07

Użyłem info na https://geekflare.com/openssl-commands-certificates / i udało się w zaledwie 2 krokach:

  1. OpenSSL req-x509-sha256-nodes-days 3650-newkey rsa:4096-keyout mykey.klucz-out mypem.pem

  2. Openssl pkcs12-export-out myp12.p12-inkey mykey.key-in mypem.pem

 10
Author: Oliver Konig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 10:04:17

If you look at this site " http://www.sslshopper.com/article-most-common-openssl-commands.html " posiada większość popularnych poleceń, których szukasz. Musiałem to zrobić niedawno dla programu amazon associates i okazało się, że ich strona jest pomocna ( http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert aby to uruchomić, musisz zainstalować openssl (zobacz: http://slproweb.com/products/Win32OpenSSL.html).

 2
Author: drew_w,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-07 19:27:51