207.11.13 update:证书格式在线转换 html
1.PFX是带有私钥的证书(包含公钥和私钥)
由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx做为证书文件后缀名(文件的扩展名能够为pfx或p12)。 node
2.CER二进制编码的证书(只包含公钥)
证书中没有私钥,DER 编码二进制格式的证书文件,以cer做为证书文件后缀名。 算法
3.Base64编码的证书(只包含公钥)
证书中没有私钥,BASE64 编码格式的证书文件,也是以cer做为证书文件后缀名。tomcat
由定义能够看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。安全
在pfx证书的导入过程当中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。通常是不选中的,若是选中,别人就有机会备份你的密钥了。若是是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全。服务器
若是导入过程当中没有选中这一项,作证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。若是导入时选中该项,则在导出时“导出私钥”这一项就是可选的。app
若是要导出私钥(pfx),是须要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即便拿到了你的证书备份(pfx),不知道加密私钥的密码,也是没法导入证书的。相反,若是只是导入导出cer格式的证书,是不会提示你输入密码的。由于公钥通常来讲是对外公开的,不用加密网站
======================================ui
从pfx导出公、私钥编码
======================================
从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足)
一、提取密钥对(若是pfx证书已加密,会提示输入密码。)
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
二、从密钥对提取私钥
openssl rsa -in 1.key -out 1_pri.key
三、从密钥对提取公钥
openssl rsa -in 1.key -pubout -out 1_pub.key
四、由于RSA算法使用的是pkcs8模式补足,须要对提取的私钥进一步处理(可选)
openssl pkcs8 -in 1_pri.key -out 1_pri.p8 -outform der -nocrypt -topk8
================================
将pfx成一个cer
================================
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
另:
apple developer中关于CSR证书请求文件(本机生成Cert Signing Request),它只是包含公钥的一个文件文件,传到apple开发者网站,去下载apple的对此商家签名后的公钥,用之后续开发操做。
另:若是生成tomcat须要的证书文件
keytool -import -v -trustcacerts -storepass 123456 -alias root -file xxx.im.crt -keystore xxx.jks
参考
http://blog.chinaunix.net/uid-24709751-id-3475550.html
http://blog.csdn.net/wangshfa/article/details/9110383
http://www.openssl.org/docs/apps/pkcs12.html
http://blog.csdn.net/blade2001/article/details/9787295
SSL证书:在应用HTTPS以前,用户应先配置SSL证书。SSL证书是由证书受权中心(CA)签发的对用户公钥的认证。证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等。目前,证书的格式和验证方法广泛遵循X.509 国际标准。
HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer。HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。
SSL:Secure Sockets Layer。SSL是一个安全协议,它提供使用 TCP/IP 的通讯应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用 SSL 来实现安全的通讯。
TLS:Transport Layer Security Protocol。TLS是IETF制定的一种新的协议,它创建在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差异,主要是它们所支持的加密算法不一样,因此TLS与SSL3.0不能互操做。TLS也常常用SSL来指代。
CA:即证书受权中心(CA, Certificate Authority)。CA是负责签发证书、认证证书、管理已颁发证书的机关。用户向CA提出申请后,CA负责审核用户信息,而后对关键信息利用私钥进行”签名”,并公开对应的公钥。客户端能够利用公钥验证签名。
非对称加密:即常见的RSA、DH、EC等算法,算法特色是密钥成对出现,通常称为公钥(公开)和私钥(保密),公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。公钥对外公开,私钥由服务器保存。所以掌握公钥的不一样客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通讯,服务器能够实现1对多的通讯,客户端也能够用来验证掌握私钥的服务器身份。
CSR:CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时所生成的证书请求文件。证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
PEM:Openssl所使用的文档格式。RFC 1421-1424。