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

标签 android openssl certificate pkcs#12

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

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

我试图在我 friend 的计算机(使用 OpenSSL、Linux)上使用 OpenSSL 构建 PKCS12 文件,但我什么也没得到。谁能帮助我,并描述使用私钥和自签名公共(public)证书生成 PKCS12 文件的操作顺序?

最佳答案

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

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

1.生成 RSA 私钥:

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

地点:

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

<Key Size>是 1024、2048 或 4096 的所需 key 长度

例如,输入:

>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.根据请求生成自签名公共(public)证书:

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

地点:

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

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

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

例如,输入:

>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>是公共(public)证书的输入文件名,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)文件和公共(public)证书(.crt)文件。 ) 文件。

生成的 PKCS#12 格式文件现在可以在安全 FTP 服务器 - FIPS 中使用。

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

关于android - 通过 Windows 中的 OpenSSL 为我的 Android 应用程序创建带有自签名证书的 PKCS#12 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20445365/

相关文章:

iphone - 使用公司 iOS Developer 开发私有(private) iPhone

android - 列表弹出窗口 : getWindowVisibleDisplayFrame(Rect) null exception

Android usb 主机 api 和 USB 存储

c++ - 在应用程序中嵌入 SSL key

c - AES_cbc_encrypt 中的段错误

c# - azure sdk 将证书链接到新资源组

security - 过期的 SSL 证书和加密

java - 如何在 Android 中格式化日期时间

java - 如何从另一个类激活 loaddata()

c - 制作 C 代码时 libcrypto.a 出错