文档章节

pfx证书与cer证书的区别

swingcoder
 swingcoder
发布于 2016/05/11 11:29
字数 1437
阅读 1816
收藏 2
点赞 2
评论 0

207.11.13 update:证书格式在线转换 

1.PFX是带有私钥的证书(包含公钥和私钥) 
由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名(文件的扩展名可以为pfx或p12)。 

2.CER二进制编码的证书(只包含公钥) 
证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。 

3.Base64编码的证书(只包含公钥) 
证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。

由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。

在pfx证书的导入过程中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。一般是不选中的,如果选中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全。

如果导入过程中没有选中这一项,做证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。

如果要导出私钥(pfx),是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密

======================================

从pfx导出公、私钥

======================================

从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足)

1、提取密钥对(如果pfx证书已加密,会提示输入密码。)
       openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key

2、从密钥对提取私钥
       openssl rsa -in  1.key -out 1_pri.key

3、从密钥对提取公钥
       openssl rsa -in 1.key -pubout -out 1_pub.key

4、因为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

© 著作权归作者所有

共有 人打赏支持
swingcoder
粉丝 30
博文 282
码字总数 63046
作品 0
广州
技术主管
关于pfx和cer数字证书

1、数字证书文件cer和pfx的区别 作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证...

黎嘉诚 ⋅ 2016/08/12 ⋅ 0

OpenSSL 转换证书格式

OpenSSL 转换证书格式 原创 2016-08-30 景峯 Netkiller 工作中我相信你一定会遇到处理数字证书的时候。各种平台,各种语言,它们采用的证书格式与标准都不相同,多多少少存在一些差异。实际上...

neo-chen ⋅ 2016/09/08 ⋅ 0

常用的证书格式转换

一直对电子证书的文件后缀比较头大,搞不清这些后缀的关系,终于在网上搜到一个比较简明的文章,试着翻译一下:) 证书与编码 本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编码...

niceguy_php ⋅ 2014/04/02 ⋅ 0

SCVMM2012R2 RU10 添加 Azure 订阅

如果你已经管理在 VMM 中的本地虚拟机,则可以使用此功能在无需离开 VMM 控制台的情况下对 Azure 实例执行某些非常基本的操作。 你可以: a.使用 VMM 控制台添加和删除一个或多个 Azure 订阅...

月缺 ⋅ 2016/08/14 ⋅ 0

不同格式证书导入keystore方法

Java 自带的 keytool 工具 是个密钥和证书管理工具。它使用户能够管理自己的公钥 / 私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户 / 服务认证自己)或数据完整性以及认证...

xiaoxin ⋅ 2014/01/26 ⋅ 0

使用OpenSSL将pfx证书转换成cer格式的证书

在工作中遇到一个要将pfx格式的的证书转换为cer格式的需求,原有的做法是将pfx格式的证书先倒入到浏览器中,然后再由浏览器导出,但是这样对于批量操作来说效率太慢,看了一下,可以使用Ope...

lovedreamland ⋅ 2014/10/13 ⋅ 2

java keytool支持的类型及如何将证书导入jks中

简介 Java自带的keytool工具是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务...

苏叶晚晚 ⋅ 2013/09/25 ⋅ 0

如何创建证书用于windows Azure 服务

向 Windows Azure 上载映像,都需要你创建证书,在创建证书后,您必须将其添加到 Windows Azure 中您的订阅。 一种方法是使用IIS管理器,然后在其中建立自我签署证书。 当您建立证书之后,需要...

songlihuan ⋅ 2014/05/17 ⋅ 0

der pem cer crt key pfx等概念及区别

证书主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SCEP等。 一、编码格式 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参...

wushank ⋅ 2017/04/13 ⋅ 0

密钥、证书生成和管理总结

openSSH的ssh-keygen工具 openSSL keytool GPG PGP Putty 其他未整理内容 一、OpenSSH和ssh-keygen OpenSSH是SSH协议的开源版本(SSH:Secure SHell)。使用SSH透过计算机网络实现加密通讯,...

wushank ⋅ 2016/05/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

服务网关过滤器

过滤器作用 我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会...

明理萝 ⋅ 8分钟前 ⋅ 1

【2018.06.21学习笔记】【linux高级知识 14.1-14.3】

14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项

lgsxp ⋅ 16分钟前 ⋅ 0

Day18 vim编辑模式、命令模式与练习

编辑模式 命令模式 :nohl 不高亮显示 :x与:wq类似,如果在更改文件之后操作,两者效果一样;如果打开文件,没有任何操作; :wq会更改mtime,但是:x不会。 练习题 扩展 vim的特殊用法 ht...

杉下 ⋅ 20分钟前 ⋅ 0

Enum、EnumMap、EnumSet

1、Enum 不带参数 public enum Car { AUDI { @Override public int getPrice() { return 25000; } }, MERCEDES { ......

职业搬砖20年 ⋅ 21分钟前 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 22分钟前 ⋅ 0

线程组和 ThreadLocal

前言 在上面文章中,我们从源码的角度上解析了一下线程池,并且从其 execute 方法开始把线程池中的相关执行流程过了一遍。那么接下来,我们来看一个新的关于线程的知识点:线程组。 线程组 ...

猴亮屏 ⋅ 23分钟前 ⋅ 0

相对路径和绝对路径

基本概念   文件路径就是文件在电脑中的位置,表示文件路径的方式有两种,相对路径和绝对路径。在网页设计中通过路径可以表示链接,插入图像、Flash、CSS文件的位置。   物理路径:物理路...

临江仙卜算子 ⋅ 27分钟前 ⋅ 0

消息队列属性及常见消息队列介绍

什么是消息队列? 消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个队列的消息可以同时被多个消息消费者消费。分布式消息服务DMS则是分布式的队列系统,消...

中间件小哥 ⋅ 29分钟前 ⋅ 0

java程序员使用web3j进行以太坊开发详解

如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器...

笔阁 ⋅ 30分钟前 ⋅ 0

vim编辑模式、vim命令模式

vim编辑模式 使用vim filename 进入的界面是一般模式,在这个模式下虽然我们能够查看,复制,剪切,粘贴,但是不能编辑新的内容,如何能直接写入东西呢?这就需要进入编辑模式了,从一般模式...

李超小牛子 ⋅ 32分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部