java安全架构____多种数字证书简介(X509,cer,pem,pfx,keystore)

3/8/2017来源:ASP.NET技巧人气:5529

.cer证书:
	用于存储公钥的一种证书的文件格式通常被用于二进制的DER文件格式(同于.der), 
	不过也被用于Base64编码的文件 (例如 .pem).
(.jks,.keystore,.truststore)证书:
	(包含公钥私钥 和用户名密码校验)
	可以存储多对(公钥和私钥) 只要有alias 和passWord就可以用java的kstore类读取证书的公钥和私钥
.pfx证书:
	(包含公钥私钥)
	公钥加密标准 #12 (PKCS#12) 可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件。
	通常可以将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式合并转换为标准的PFX文件,
	你可以将PFX文件格式导入到微软IIS 5/6、微软ISA、微软Exchange Server等软件。
	转换时需要输入PFX文件的加密密码
	和jks功能相同但文件格式不同,pfx是浏览器用的
	公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或服务器私钥、
	公钥和证书指定了一个可移植的格式。它是一种二进制格式,这些文件也称为PFX文件。
	开发人员通常需要将PFX文件转换为某些不同的格式,如PEM或JKS,
	以便可以为使用SSL通信的独立Java客户端或WebLogic Server使用
	是一种Microsoft协议,使用户可以将机密信息从一个环境或平台传输到另一个环境或平台。
	使用该协议,用户就可以安全地将个人信息从一个计算机系统导出到另一个系统中
	可以用一些工具程序把pfx转化成jks格式供java程序使用

.PEM证书
	 PEM(PRivacy Enhanced Mail)格式来存放各种信息
	内容类型:表明本文件存放的是什么信息内容,它的形式为“——-BEGIN XXXX ——”,与结尾的“——END XXXX——”对应
	头信息:表明数据是如果被处理后存放,openssl 中用的最多的是加密信息,比如加密算法以及初始化向量 iv
	信息体:为 BASE64 编码的数据。可以包括所有私钥(RSA 和 DSA)、公钥(RSA 和 DSA)和 (x509) 证书。
	它存储用 Base64 编码的 DER 格式数据,用 ascii 报头包围,因此适合系统之间的文本模式传输
	使用PEM格式存储的证书:
	//pem证书内容大致分为
	—–BEGIN CERTIFICATE—–
	MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
	………
	1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
	—–END CERTIFICATE—–
	使用PEM格式存储的私钥:
	—–BEGIN RSA PRIVATE KEY—–
	MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
	………
	1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
	—–END RSA PRIVATE KEY—–
	使用PEM格式存储的证书请求文件:
	—–BEGIN CERTIFICATE REQUEST—–
	MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
	………
	1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
	—–END CERTIFICATE REQUEST—–