将apache2自签名证书转换为p12格式

时间:2014-03-08 17:16:05

标签: openssl certificate

我正在尝试创建Android 4.3将识别的证书文件,以便访问具有自签名证书的网站,而无需单击警告页面。我认为我目前的问题是将证书转换为Android将识别的正确格式。

首先,我读过“Android只能理解* .p12文件格式的用户证书”。假设服务器上的server.crt文件是这个引用的证书是否正确? server.crt中的第一行读取

-----BEGIN CERTIFICATE-----

我一直在尝试遵循this question答案中给出的程序。我注意到的第一件事是:

Convert a DER file (.crt .cer .der) to PEM

这是否意味着所有这些扩展都是DER文件?当我尝试使用后面的命令时,我收到此错误:

$openssl x509 -inform der -in server.crt -out ~/server.pem
unable to load certificate 
140735083343132:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735083343132:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509

第二个问题是在我找到的有关如何获得p12格式证书的示例中。似乎总是提到私钥,但我认为这不适合导出自签名证书,是吗?

例如,

Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)

它提供命令:

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

但是我没有CACert.crt(因为server.crt是自签名的?),我唯一的.crt文件是server.crt。另外,由于我需要将crt而不是pem转换为p12,我想尝试将前一个命令的输入部分与后者的输出部分组合起来。但前者使用“x509”命令而后者使用“pkcs12”,那么我应该使用哪一个?

更新

openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12

似乎工作,我能够将证书导入Android(它甚至声称它安装在一个toaste消息中),但之后它仍然没有显示在用户证书列表中,并试图访问该网站凭证仍然会导致“网站的安全证书不受信任!”消息我必须点击。

0 个答案:

没有答案