㈠ DER,CRT,CER,PEM证书以及如何转换它们
CRT和CER唯一可以安全互换的时间是编码类型可以相同时。 (即PEM编码的CRT = PEM编码的CER)
证书操作有四种基本类型。查看,转换,组合和导出
查看PEM编码的证书 使用具有证书扩展名的命令,将cert.xxx替换为证书名称
如果收到以下错误,则表示您正在尝试查看DER编码的证书,并且需要使用以下``查看DER编码的证书''中的命令
查看DER编码的证书
如果收到以下错误,则表示您正在尝试使用用于DER编码证书的命令查看PEM编码证书。使用“上面的查看PEM编码的证书”中的命令
PEM to DER
DER to PEM
在某些情况下,将多个X.509基础结构组合到一个文件中是有利的。一个常见的示例是将私钥和公钥都组合到同一证书中。
组合证书密钥和链的最简单方法是将每个密钥转换为PEM编码的证书,然后将每个文件的内容简单地复制到新文件中。这适合于组合文件以在Apache的应用程序中使用
一些证书将以组合形式出现。其中一个文件可以包含以下任意一项:证书,私钥,公钥,签名证书,证书颁发机构(CA)或颁发机构链。
㈡ 如何添加证书到system\etc\security\cacerts.bks
一:
获取cacerts.bks文件到你的计算机中,可使用android模式器,也可USB连接你的手机。
>adb pull /system/etc/security/cacerts.bks cacerts.bks
二:
在PC上安装java环境,然后下载这个文件 bcprov-jdk16-141.jar,放入java安装目录下的/lib/ext/目录中。
bcprov-jdk16-141.jar到linux公社的1号FTP服务器里,下载地址:
FTP地址:www.linuxidc.com" target="_blank">ftp://www.linuxidc.com
用户名:www.linuxidc.com
密码:www.muu.cc
在 2011年LinuxIDC.com\5月\Android(cacerts.bks)添加根证书
下载方法见 http://www.linuxidc.net/thread-1187-1-1.html
将第一步中取得的cacerts.bks与你要添加的CA证书放在同一级目录下,CA证书为crt或cer格式。
㈢ DER、CRT、CER、PEM证书格式介绍及转换方法
X.509证书,其核心是根据RFC 5280编码或数字签名的数字文档。
实际上,术语X.509证书通常指的是IETF的PKIX证书和X.509 v3证书标准的CRL 文件,即如RFC 5280(通常称为PKIX for Public Key Infrastructure(X.509))中规定的。
我们首先要了解的是每种类型的文件扩展名。 很多人不清楚DER,PEM,CRT和CER结尾的文件是什么,更有甚者错误地说是可以互换的。 在某些情况下,某些可以互换,最佳做法是识别证书的编码方式,然后正确标记。 正确标签的证书将更容易操纵
.DER 扩展用于二进制DER编码证书。
这些文件也可能承载CER或CRT扩展。 正确的说法是“我有一个DER编码的证书”不是“我有一个DER证书”。
.PEM 扩展用于不同类型的X.509v3文件,是以“ - BEGIN ...”前缀的ASCII(Base64)数据。
.CRT 扩展用于证书。 证书可以被编码为二进制DER或ASCII PEM。 CER和CRT扩展几乎是同义词。 最常见的于Unix 或类Unix系统。
CER 是.crt的替代形式(Microsoft Convention)您可以在微软系统环境下将.crt转换为.cer(.both DER编码的.cer,或base64 [PEM]编码的.cer)。
.cer文件扩展名也被IE识别为 一个运行MS cryptoAPI命令的命令(特别是rundll32.exe cryptext.dll,CryptExtOpenCER),该命令显示用于导入和/或查看证书内容的对话框。
.KEY扩展名用于公钥和私钥PKCS#8。 键可以被编码为二进制DER或ASCII PEM。
证书操作有四种基本类型。查看,转换,组合和提取。
即使PEM编码的证书是ASCII,它们是不可读的。这里有一些命令可以让你以可读的形式输出证书的内容;
如果您遇到这个错误,这意味着您正在尝试查看DER编码的证书,并需要使用“查看DER编码证书”中的命令。
unable to load certificate 12626:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTEDCERTIFICATE
如果您遇到以下错误,则表示您尝试使用DER编码证书的命令查看PEM编码证书。在“查看PEM编码的证书”中使用命令
unable to load certificate 13978:error:0D0680A8:asn1 encodingroutines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306: 13978:error:0D07803A:asn1 encodingroutines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
转换可以将一种类型的编码证书存入另一种。(即PEM到DER转换)
PEM到DER
DER到PEM
在某些情况下,将多个X.509基础设施组合到单个文件中是有利的。一个常见的例子是将私钥和公钥两者结合到相同的证书中。
组合密钥和链的最简单的方法是将每个文件转换为PEM编码的证书,然后将每个文件的内容简单地复制到一个新文件中。这适用于组合文件以在Apache中使用的应用程序。
一些证书将以组合形式出现。 一个文件可以包含以下任何一个:证书,私钥,公钥,签名证书,证书颁发机构(CA)和/或权限链。
㈣ 如何在安卓手机安装数字证书 crt和p12
当点击Wi-Fi Settings, Advanced界面的“安装证书”;或者在Settings的Security界面下的CredentialStorage界面点击“安装证书”。com.android.certinstaller包中的CertInstallerMain类会收到Settings发送的Credentials.INSTALL_AS_USER_ACTION intent。
然后,CertInstallerMain类开始创建一个线程,并开始run。在run中,因为收到了Credentials.INSTALL_AS_USER_ACTION intent, CertInstallerMain开始判断SD卡是否存在,这里,我们将证书都push到SD卡里了,SD卡当然是存在的。这种情况下,CertInstallerMain类通过其继承的CertFile类开始读取卡里的所有证书文件。CertFile类读取证书的过程很简单:它把自己设置成了一个FileFilter,在accept方法中,CertFile只接收后缀为Credentials.EXTENSION_CRT, Credentials.EXTENSION_P12, Credentials.EXTENSION_CER, Credentials.EXTENSION_PFX的文件。也就是说当前,Android只支持后缀为crt, p12,cer和pfx的数字证书。
接着,当SD卡里只有一个证书的时候它弹出一个安装提示框,当SD卡里有一堆证书的时候,它会弹出一个证书列表,这个列表由CertFileList类维护,放点击某个证书的时候,会和当SD卡里只有一个证书的时候一样,调用installFromFile方法,弹出一个对话框。CertFile类的install方法会通知CertInstaller来负责证书的安装。
CertFile类对p12证书和其它证书进行了分类,要是p12证书,我给个对话框,输入完密码就OK了。我这里,还使用了WIFI WAP需要的CA证书进行测试。对于CA证书,当点击弹出对话框的“确认”对应的按钮后,它会通过CredentialHelper类建立一个com.android.credentials.INSTALL intent发给com.android.settings.CredentialStorage类。当CertInstaller类启动后它会直接创建一个CredentialHelper类,CredentialHelper类就直接将安装的证书分类成CA和USER,所以当点击“确认”后,CredentialHelper会将CA证书的信息通过Credentials.EXTRA_CA_CERTIFICATES_NAME和Credentials.EXTRA_CA_CERTIFICATES_DATA放到com.android.credentials.INSTALL的intent中。
最后,Settings收到了这个intent,通过installIfAvailable()方法,将CA证书的信息保存到了KeyStore中。然后,Settings可以通过KeyStore来读取保存的证书。
㈤ 安卓(android)手机里的CA证书如何备份出来还原到其它手机上。
Android中Ca证书的PrivateKey获取正常数据
在4.1版本里面获取的值为空,在4.0里面可以正常获取,与用keystore获取的value是一样的,在4.2+版本里面获取的value只有部分值,如下所示,在4.2以上的版本android里面只有molus值:
1. android系统中先安装证书,然后通过KeyChain.gePrivateKey(..)获取到的,无法通过privateKey进行文件解密操作,非正常的privateKey.
molus=
参考网址:(http://)stackoverflow点com/questions斜杠12507697斜杠keychain-getprivatekeycontext-string-on-android-4-1
,
publicExponent=10001,
2. 通过证书文件流方式 ,使用keyStore的方法获取到的,为所需要的PrivateKey.
molus:public exponent: 10001
private exponent:
primeP:
primeQ:
primeExponentP:
primeExponentQ:
crtCoefficient:
327d611df42341f5d5