2013-12-07 17 views
24

Sto scrivendo un'app per Android che richiede la certificazione SSL per determinate richieste web. Ho bisogno di creare un file PKCS12 (.pfx) con certificato autofirmato.Crea file PKCS # 12 con certificato autofirmato tramite OpenSSL in Windows per la mia app per Android

Ho deciso di utilizzare la libreria OpenSSL, ma non sono riuscito a crearlo sul mio computer (piattaforma Windows x64). Voglio farlo senza l'installazione di ActivePerl. Chi conosce un modo semplice per costruirlo?

Stavo cercando di creare un file PKCS12 con OpenSSL sul mio computer degli amici (con OpenSSL, Linux) ma non ottengo nulla. Qualcuno può aiutarmi e descrivere la sequenza di azioni per generare file PKCS12 con chiave privata e certificato pubblico autofirmato?

+1

Hai usato Eclipse per lo sviluppo Android? –

+0

@ Plo_Koon Sì. Uso Eclipse-ADK. –

+3

Per generare un certificato autofirmato, è possibile utilizzare un programma denominato "keytool", fornito con qualsiasi versione dell'SDK Java. Vedere questo link https: //community.jboss. org/wiki/GeneratingSelfSignedCertificateWithKeytool –

risposta

66

Il progetto di installazione Win32 OpenSSL è dedicato alla fornitura di una semplice installazione di OpenSSL. È facile da configurare e facile da usare attraverso il semplice ed efficace programma di installazione. Non c'è bisogno di compilare nulla o saltare da qualche parte, basta fare clic su un paio di volte ed è installato, lasciandoti fare un vero lavoro. Puoi ottenerlo here. Nel tuo caso, hai bisogno del programma di installazione Win64 OpenSSL v1.0.1e.

Queste istruzioni mostrano come generare una chiave privata PKCS # 12 e un file di certificato pubblico adatto per HTTPS, FTPS. Queste istruzioni presumono di aver scaricato e installato la distribuzione binaria di Windows di OpenSSL.

1.Generate una chiave privata RSA:

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

Dove:

<Key Filename> è il nome del file desiderato per il file della chiave privata

<Key Size> è la lunghezza della chiave desiderata 1024, 2048 o 4096

Ad esempio, digitare:

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

2. Generare un Certificate Signing Request:

Nella versione 0.9.8h e poi:

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

Dove:

<Key Filename> è il nome del file di ingresso del precedentemente generato chiave privata

<Request Filename> è il nome del file di output della richiesta di certificato di firma

Ad esempio, digitare:

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

3. Seguire le istruzioni sullo schermo per le informazioni richiesta di certificato richiesto.

4.Generare un certificato pubblico autofirmato in base alla richiesta:

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

Dove:

<Request Filename> è il nome del file di input della richiesta di firma del certificato

<Key Filename> è il nome del file di input del già chiave privata generata

<Certificate Filename> è il nome file di uscita del certificato pubblico

Ad esempio, digitare:

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

5. generare un file 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>"

Dove:

<Public Certificate Filename> è il nome del file di input di il certificato pubblico, in formato PEM

<Private Key Filename> è il nome del file di ingresso della chiave privata

<PKCS#12 Filename> è il nome del file di output dei file PKCS # 12 formato

<Display Name> è il nome desiderato che a volte essere visualizzata in interfacce utente.

Ad esempio, digitare:

>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. (Facoltativo) Eliminare i file non necessari.

A questo punto, è necessario solo il PKCS # file di formato 12, in modo da poter eliminare la richiesta di firma del certificato di file (.csr) di file, la chiave privata (.key), e il file il certificato pubblico (.crt).

Il file di formato PKCS # 12 risultante può ora essere utilizzato in Secure FTP Server - FIPS.

Il file di formato PKCS # 12 (.pfx) risultante può ora essere utilizzato con il browser Firefox ver 34.0.5.

+1

Molte grazie per il vostro aiuto! –

2

Se si guarda questo sito "http://www.sslshopper.com/article-most-common-openssl-commands.html" ha la maggior parte dei comandi comuni che si desidera cercare. Ho dovuto farlo recentemente per il programma amazon associates e ho trovato utile il loro sito (http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert).By in questo modo, è necessario installare openssl per eseguirlo (vedi: http://slproweb.com/products/Win32OpenSSL.html).

+0

Grazie per la risposta, e link utili) –