web-dev-qa-db-fra.com

Créer un fichier PKCS # 12 avec un certificat auto-signé via OpenSSL dans Windows pour mon Android App

J'écris une application Android qui nécessite une certification SSL pour certaines demandes Web. J'ai besoin de créer un fichier PKCS12 (.pfx) avec certificat auto-signé.

J'ai décidé d'utiliser la bibliothèque OpenSSL, mais je n'ai pas pu la construire sur mon ordinateur (plateforme Windows x64). Je veux le faire sans installation d'ActivePerl. Qui sait comment le construire facilement?

J'essayais de créer un fichier PKCS12 avec OpenSSL sur mon ordinateur d'amis (avec OpenSSL, Linux) mais je ne reçois rien. Quelqu'un peut-il m'aider et décrire la séquence d'actions pour générer un fichier PKCS12 avec une clé privée et un certificat public auto-signé?

25
user3029135

Le projet d'installation Win32 OpenSSL est dédié à fournir une installation simple d'OpenSSL. Il est facile à installer et à utiliser grâce à l'installateur simple et efficace. Pas besoin de compiler quoi que ce soit ou de sauter à travers les cerceaux, cliquez simplement plusieurs fois et il est installé, vous laissant faire un vrai travail. Vous pouvez l'obtenir ici . Dans votre cas, vous avez besoin de Win64 OpenSSL v1.0.1e Installateur.

Ces instructions montrent comment générer une clé privée PKCS # 12 et un fichier de certificat public pouvant être utilisé avec HTTPS, FTPS. Ces instructions supposent que vous avez téléchargé et installé la distribution binaire Windows d'OpenSSL.

1.Générez une clé privée RSA:

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

Où:

<Key Filename> est le nom de fichier souhaité pour le fichier de clé privée

<Key Size> est la longueur de clé souhaitée de 1024, 2048 ou 4096

Par exemple, tapez:

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

2. Générer une demande de signature de certificat:

Dans la version 0.9.8h et versions ultérieures:

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

Où:

<Key Filename> est le nom de fichier d'entrée de la clé privée générée précédemment

<Request Filename> est le nom du fichier de sortie de la demande de signature de certificat

Par exemple, tapez:

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

3. Suivez les invites à l'écran pour obtenir les informations de demande de certificat requises.

4. Générez un certificat public auto-signé basé sur la demande:

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

Où:

<Request Filename> est le nom de fichier d'entrée de la demande de signature de certificat

<Key Filename> est le nom de fichier d'entrée de la clé privée générée précédemment

<Certificate Filename> est le nom du fichier de sortie du certificat public

Par exemple, tapez:

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

5. Générez un fichier 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>"

Où:

<Public Certificate Filename> est le nom de fichier d'entrée du certificat public, au format PEM

<Private Key Filename> est le nom de fichier d'entrée de la clé privée

<PKCS#12 Filename> est le nom du fichier de sortie du fichier au format pkcs # 12

<Display Name> est le nom souhaité qui sera parfois affiché dans les interfaces utilisateur.

Par exemple, tapez:

>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. (Facultatif) Supprimez les fichiers inutiles.

À ce stade, vous n'avez besoin que du fichier au format PKCS # 12, vous pouvez donc supprimer la demande de signature de certificat (.csr), la clé privée (.key) et le certificat public (.crt) fichier.

Le fichier au format PKCS # 12 résultant peut maintenant être utilisé dans Secure FTP Server - FIPS.

Le fichier au format PKCS # 12 résultant (.pfx) peut maintenant être utilisé avec le navigateur Firefox ver 34.0.5.

71
Plo_Koon

J'ai utilisé les informations sur https://geekflare.com/openssl-commands-certificates/ et j'ai réussi en seulement 2 étapes:

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

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

4
Oliver Konig

Si vous consultez ce site " http://www.sslshopper.com/article-most-common-openssl-commands.html " il contient la plupart des commandes courantes que vous recherchez. J'ai dû le faire récemment pour le programme Amazon Associates et j'ai également trouvé leur site utile ( http://docs.aws.Amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert) .By = la manière, vous devrez installer openssl pour exécuter ceci (voir: http://slproweb.com/products/Win32OpenSSL.html ).

2
drew_w