我正在编写一个 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/