密钥库文件格式(Keystore)
格式:JKS 拓展名:.jks/.ks
JKS (Java KeyStore): 密钥库的Java实现版本,provider为SUN,java的密钥存储文件,二进制格式,是一种 Java 特定的密钥文件格式, JKS的密钥库和私钥用不同的密码进行保护。
格式:JCEKS 拓展名:.jce
JCEKS (JCE Keystore):密钥库的JCE实现版本,provider为SUN JCE,java的密钥存储文件,在JCEKS中存储和装载不同条目的过程类似于JKS,相对于JKS安全级别更高,JDK1.4版本后可直接使用,保护Keystore私钥时采用TripleDES。
格式:PKCS12 拓展名:.p12/.pfx
PKCS12:是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件,在windows中可以直接导入到密钥区,密钥库和私钥用相同密码进行保护
格式:BKS 拓展名:.bks
BKS(Bouncycastle Keystore):密钥库的BC实现版本,provider为BC,保护Keystore私钥时采用TripleDES,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操作。
格式:BUER 拓展名:.ubr
BUDER(Bouncycastle UBER Keystore):密钥库的BC更安全实现版本,provider为BC,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/Twofish加密,因此 keystore能够防止被误改、察看以及校验。SunJDK允许你在不提供密码的情况下直接加载一个Keystore,类似cacerts,UBER不 允许这种情况。
证书文件格式(Certificate)
格式:DER 拓展名:.cer/.crt/.rsa
DER(ASN .1 DER):用于存放证书,不含私钥,为二进制。
1、.DER =扩展名.DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。
2、.CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。
3、.CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll, CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。
格式:PKCS7 拓展名:.p7b/.p7r
PKCS#7,也叫做加密消息的语法标准,由RSA安全体系在公钥加密系统中交换数字证书产生的一种加密标准。
其中p7b以树状展示证书链,不含私钥;p7r为CA对证书请求签名的回复,只能用于导入
格式:CMS 拓展名:.p7c/.p7m/,p7s
CMS(Cryptographic Message Syntax):
1、p7c:只保存证书;
2、p7m:signature with enveloped data;
3、p7s:时间戳签名文件
格式:PEM 拓展名:.pem
PEM(Privacy nhanced Mail):该编码格式在RFC1421中定义,但他也同样广泛运用于密钥管理,实质上是 Base64 编码的二进制内容。
格式:PKCS10 拓展名:.p10/.csr
CSR:证书签发请求(Certificate Signing Request),或者叫做认证申请,是一个发送到CA的请求认证信息。有两种格式,应用最广泛的是由PKCS#10定义的,另一个用的少的是由SPKAC定义的,主要应用于网景浏览器。
P10:证书请求文件,类似于CSR文件。
格式:SPC 拓展名:.pvk/.spc
SPC(Software Publishing Certificate):微软公司特有的双证书文件格式,经常用于代码签名,其中.pvk用于保存私钥、.spc用于保存公钥。