繁体   English   中英

通过Windows中的OpenSSL为我的Android应用程序创建带有自签名证书的PKCS#12文件

[英]Create PKCS#12 file with self-signed certificate via OpenSSL in Windows for my Android App

我正在编写一个Android应用程序,需要对某些Web请求进行SSL认证。 我需要使用自签名证书构建PKCS12文件( .pfx )。

我决定使用OpenSSL库,但我无法在我的计算机上构建它(Windows x64平台)。 我想在没有安装ActivePerl的情况下这样做。 谁知道简单的方法来构建它?

我试图在我的朋友计算机上使用OpenSSL构建一个PKCS12文件(使用OpenSSL,Linux),但我什么都没得到。 任何人都可以帮助我,并描述使用私钥和自签名公共证书生成PKCS12文件的操作顺序?

Win32 OpenSSL安装项目致力于提供OpenSSL的简单安装。 通过简单有效的安装程序,它易于设置和使用。 无需编译任何内容或跳过任何环节,只需单击几次即可安装,让您完成实际工作。 你可以在这里得到它。 在您的情况下,您需要Win64 OpenSSL v1.0.1e安装程序。

这些说明显示了如何生成适用于HTTPS,FTPS的PKCS#12私钥和公共证书文件。 这些说明假定您已下载并安装了OpenSSL的Windows二进制分发版。

1.生成RSA私钥:

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

哪里:

<Key Filename>是私钥文件的所需文件名

<Key Size>是1024,2048或4096的所需密钥长度

例如,键入:

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

2.生成证书签名请求:

在0.9.8h及更高版本中:

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

哪里:

<Key Filename>是先前生成的私钥的输入文件名

<Request Filename>是证书签名请求的输出文件名

例如,键入:

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

3.按照屏幕上的提示输入所需的证书申请信息。

4.根据请求生成自签名公共证书:

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

哪里:

<Request Filename>是证书签名请求的输入文件名

<Key Filename>是先前生成的私钥的输入文件名

<Certificate Filename>是公共证书的输出文件名

例如,键入:

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

5.生成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>"

哪里:

<Public Certificate Filename>是PEM格式的公共证书的输入文件名

<Private Key Filename>是私钥的输入文件名

<PKCS#12 Filename>是pkcs#12格式文件的输出文件名

<Display Name>是有时会在用户界面中显示的所需名称。

例如,键入:

>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.(可选)删除不需要的文件。

此时,您只需要PKCS#12格式文件,因此您可以删除证书签名请求( .csr )文件,私钥( .key )文件和公共证书( .crt )文件。

生成的PKCS#12格式文件现在可以在Secure FTP Server - FIPS中使用。

生成的PKCS#12格式(.pfx)文件现在可以与Firefox浏览器版本34.0.5一起使用。

我使用了https://geekflare.com/openssl-commands-certificates/上的信息,并且仅通过两个步骤成功完成:

  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

如果您查看此站点“ http://www.sslshopper.com/article-most-common-openssl-commands.html ”,它将包含您要查找的大多数常用命令。 最近我必须为亚马逊员工计划这样做,并发现他们的网站也很有用( http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert)。顺便说一下,你需要安装openssl来运行它(参见: http//slproweb.com/products/Win32OpenSSL.html )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM