.pfx和.Cer 证书
通常情况下,作为文件形式存在的证书一般有三种格式:
- 第一种:带有私钥的证书,由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以.pfx作为证书文件后缀名。
- 第二种:DER Encoded Binary (.cer) 二进制编码的证书,证书中没有私钥,DER 编码二进制格式的证书文件,以.cer作为证书文件后缀名。
- 第三种:Base64 Encoded(.cer),Base64编码的证书,证书中没有私钥,BASE64 编码格式的证书文件,也是以.cer作为证书文件后缀名。
由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。
Cer证书只包含公钥信息,如果客户端与网站通信时需要用到私钥(基本所有需要数字证书的网站都会用到私钥),则cer证书是无法正常访问网站的,网站会提示“该页要求客户证书”。
Pfx证书既可以导出为pfx证书,也可以导出为cer证书。Pfx证书导出时,会提示是否导出私钥,导出私钥即pfx证书,不导出私钥就是cer证书。
如果选择导出私钥,出于安全性考虑,浏览器会提示你指定一个密码用于保护该私钥,日后再次导入该pfx证书时,浏览器会要求你提供该私钥保护密码。
由于cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。
一,证书描述
证书发布之后,申请者可以看到证书的详细内容,注意:申请者在下载cer证书之后,需要在申请证书的机器上导入证书,原因是申请证书的机器上包含密钥。

证书给出了一个黄色的注意事项:您可能正在一个台计机器上下载证书,这台计算机与您请求证书的机器不同。但是,该证书仅在生成请求的机器上起作用。如果需要把证书安装在另一台服务器上,请首先将其安装在最初创建请求的机器上,然后使用其私钥导出证书。 然后,在需要时,可以把其导入到目标计算机或多台计算机上的本地计算机存储中。
二,导入证书
注意,第一次导入证书,只能把证书导入到申请证书的机器上。
step1:下载DER Encoded Binary (.cer)格式的证书
step2:打开Microsoft Management Console
点击“Windows + R”,输入mmc,打开MMC控制台。
step3:添加证书管理单元(snap-ins)
点击MMC的File菜单,选择“Add or Remove Snap-ins”,选择Certificates,点击“Add >”,选择 computer account,

下一步选择“Local computer: (the computer this consoled is running on)”,点击Finish按钮,

完成之后,在“Add or Remove Snap-ins”对话框上点击OK,返回到MMC界面。
step4:导入证书
在Console Root列表种选择"Certificates(Local Computer)",右击Personal,导航到 All Tasks -> Import,打开“Certificate Import Wizard”

点击Next,进入到“File to Import”界面,在File name中打开已下载到本地的DER Encoded Binary (.cer)格式的证书

点击Next,进入到“Certificate Store”界面,选择Place certificates in the following store,把Personal作为 certificate store。

点击Next,检查证书的配置,点击Finish完成证书的第一次导入:

三,导出.pfx证书
把.cer 证书导入到机器上之后,可以导出.pfx证书。在MMC的Certificates列表中,找到刚才导入的证书:

step1,打开"Certificate Export Wizard"
选中导入的证书,右击弹出快捷菜单,导航 All Tasks-> Export,打开"Certificate Export Wizard":

step2: 导出私钥
私钥是用密码保护,如果想要把私钥导出,那么必须用密码来保护私钥。默认是不会导出私钥,但是如果需要在其他机器上安装证书,那么就必须导出私钥,勾选“Yes, export the private key”:

step3:设置导出文件的格式
把导出文件的格式设置为.PFX,在“Personal Information Exchange-PKCS #12 (.PFX)”中,勾选“Include all certificates in the certification path if possible” 和 “Enable certificate privacy”。

Step4:安全设置
为了保护私钥,需要使用把私钥授权给特定的group或user,并使用密码对私钥进行加密,Encryption列表中列出了加密的两种算法:

如果导出私钥(pfx)是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),如果不知道加密私钥的密码,那么无法导入证书。相反,如果只是导入/导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密。
Step5,设置导出的文件
把PFX文件导出到特定的文件中,需要设置pfx证书保存的文件名和路径:

Step6:检查证书导出向导的设置

检查无误后,点击Finish,导出pfx证书。
参考文档:
.pfx和.Cer 证书的更多相关文章
- 从自签名证书导出pfx和cer证书
完整代码: public sealed class DataCertificate { #region 生成证书 /// <summary> /// 根据指定的证书名和makecert全路 ...
- C#导入PFX和Cer证书的工具类
代码: public class CertificationHelper { public static bool importPFX(string certPath, string certPass ...
- JAVA调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...
- 安装.cer证书并将证书从.cer格式转化为.pem格式
## 安装.cer证书并将证书从.cer格式转化为.pem格式 ### 安装.cer证书到本地 打开*运行*窗口 输入MMC.exe, 单击*确定* 在打开的控制台1的窗口中. 选择*文件*, 选择* ...
- 下载https协议需要的cer证书
一:https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全 ...
- cer证书签名验证
一个cer还需要一个签名的证书本身,这是为了防止cer证书被篡改. 有两种类型的证书: 1. 根证书 2. 由根证书颁发子证书. 特根证书.它是自签名. 而其它子证书的签名公钥都保存在它的上级证书里面 ...
- android手机导入.cer证书文件的方法
访问很多https协议的网站需要安装证书,手机也可以导入cer文件,你知道么?本文将通过简单的两步告诉你手机安装cer文件的方法. 步骤一:请先将数字证书文件“******.cer”文件复制到SD卡的 ...
- java 调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据:密钥实体(K ...
- cer pfx格式数字证书区别
作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形 ...
随机推荐
- InnoDB Insert Buffer(插入缓冲 转)
一,插入缓冲(Insert Buffer/Change Buffer):提升插入性能 只对于非聚集索引(非唯一)的插入和更新有效,对于每一次的插入不是写到索引页中,而是先判断插入的非聚集索引页是否在缓 ...
- Azure 静态 web 应用集成 Azure 函数 API
前几次我们演示了如果通过Azure静态web应用功能发布vue跟blazor的项目.但是一个真正的web应用,总是免不了需要后台api服务为前端提供数据或者处理数据的能力.同样前面我们也介绍了Azur ...
- mon磁盘满重启的问题
问题 Ceph monitors 100% full filesystem, refusing start 问题原文 I have an issue with a (not in production ...
- Vue-router插件使用
单页面原理 Vue是单页面开发,即页面不刷新. 页面不刷新,而又要根据用户选择完成内容的更新该怎么做?Vue中采用锚点来完成. 如访问http://127.0.0.1#/index就是主页,而访问ht ...
- 单核cpu多线程有必要吗?
问题分析 现代计算机一般都是多核cpu,多线程的可以大大提高效率,但是可能会有疑问,那单核CPU使用多线程是不是没有必要了,假定一种情况,web应用服务器,单核CPU.单线程,用户发过来请求,单个线程 ...
- PHP核心配置基础解读
PHP核心配置 原为引用 <代码审计企业级web代码安全架构>尹毅 第一章内容 Register_globals(全局变量开关) 会直接把用户GET.POST等方式提交上来的参数注册成为 ...
- 三 CSS基础入门
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...
- 【PUPPETEER】初探之获取元素文本值(三)
一.知识点 page.$eval(selector, pageFunction[, ...args]) page.$$eval(selector, pageFunction[, ...args]) i ...
- C++基础练习1
1 /* 2 //读入一个双精度浮点数,保留12位小数输出这个浮点数. 3 #include<iostream> 4 #include <iomanip> 5 using na ...
- 生成微博授权url接口
1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...