当前位置:首页 > 旅游指南

cer 详解关于Pfx与cer之间的关系

Pfx和cer都是证书的文件格式,它们之间的区别如下

1.带有私钥的证书

由公钥密码标准#12和PKCS标准# 12定义,它是一种二进制格式的证书形式,包括公钥和私钥,证书文件的后缀为pfx。

2.二进制编码证书

证书中没有私钥,DER以二进制格式对证书文件进行编码,cer作为证书文件的后缀名称。

3.编码证书

证书中没有私钥,编码格式的证书文件也使用cer作为证书文件的后缀名称。

从定义中可以看出,只有pfx格式的数字证书包含私钥,而cer格式的数字证书只包含公钥,没有私钥。

pfx证书导入过程中的一项是“将此密钥标记为可导出。这将允许您稍后备份或传输密钥。。通常是不检查的。如果勾选了,别人就有机会备份你的钥匙了。如果未选中,则密钥实际上已导入,但不能再次导出。这确保了密钥的安全性。

如果在导入过程中未选择此项,则“导出私钥”项为灰色,在证书备份过程中无法选择。只能导出cer格式的公钥。如果在导入过程中选择了此项,则在导出过程中,“导出私钥”项是可选的。

如果要导出私钥(pfx),需要输入密码。这个密码是为了再次加密私钥,从而保证私钥的安全性。即使有人获得了您的证书备份(pfx)并且不知道加密私钥的密码,他们也不能导入证书。相反,如果您只导入和导出cer证书,系统不会提示您输入密码。因为公钥一般对公众开放,所以不需要加密。

下面描述了从自签名证书导出pfx和cer证书

完整代码:

1个公共密封类数据证书

2 {

为3 #地区生成证书

4 /// <。摘要>。

5 ///根据指定的证书名称生成证书,并制作证书完整路径(包括公钥和私钥,保存在MY store中)

6 /// <。/summary>。

7 /// <。param name="subjectName " >& lt/param>。

8 /// <。param name="makecertPath " >& lt/param>。

9 /// <。退货>。& lt/returns>。

10公共静态bool CreateCertWithPrivateKey(字符串subjectName,字符串makecertPath)

11 {

12 subject name = " CN = "+subject name;

13 string param = "-PE-ss my-n " "+subject name+" " ";

14试

15 {

16流程p =流程。Start(makecertPath,param);

17 p . WaitForExit

18 p . Close();

19 }

20个捕捉(例外e)

21 {

22返回false

23 }

24返回真;

25 }

26 #endregion

27

28 #区域文件的导入和导出

29 /// <。摘要>。

30 ///从WINDOWS证书存储的个人MY区域找到subjectName为的证书。

31 ///并将其导出为pfx文件,同时为其指定密码

32 ///并从个人区域删除证书(如果isDelFromstor为真)

33 /// <。/summary>。

34 /// <。param name="subjectName " >证书主题,不包括cn =

35 /// <。param name="pfxFileName " >;Pfx文件名

36//& lt。param name="password ">。pfx文件的密码

37//& lt。param name="isDelFromStore " >;删除

38 /// <。退货>。& lt/returns>。

39公共静态bool ExportToPfxFile(字符串subjectName,字符串pfxFileName,

40字符串密码,bool isDelFromStore)

41 {

42 subject name = " CN = "+subject name;

43 X509 store store = new X509 store(StoreName。我的,存储位置。CurrentUser);

44号店。Open(OpenFlags。read write);

45 X509 certificate 2 collection store collection =(X509 certificate 2 collection)存储。证书;

46 foreach(store collection中的x509证书2 x509)

47 {

48 if (x509。Subject == subjectName)

49 {

50调试。打印(字符串。格式("证书名称:{0} ",x509。主语));

51

52字节[] pfxByte = x509。导出(X509ContentType。Pfx,密码);

53使用(FileStream fileStream =新FileStream(pfxFileName,FileMode。创建))

54 {

55 //将数据逐字节写入文件。

56 for(int I = 0;i <。pfxByte。长度;i++)

57 fileStream。write byte(PfxByte[I]);

58 //将流位置设置到文件的开头。

59 fileStream。Seek(0,SeekOrigin。begin);

60 //读取并验证数据。

61 for(int I = 0;i <。fileStream。长度;i++)

62 {

63 if (pfxByte[i]!= fileStream。ReadByte())

64 {

65 fileStream。close();66返回false

67 }

68 }

69 fileStream。close();

70 }

71 if (isDelFromStore == true)

72号店。remove(x509);

73 }

74 }

75店。close();

76返回真;

77 }

78 /// <。摘要>。

79 ///从WINDOWS证书存储的个人MY区域找到subjectName为的证书。

80 ///并将其导出为CER文件(即只包含公钥的文件)

81 /// <。/summary>。

82//& lt。param name="subjectName " >& lt/param>。

83 /// <。param name="cerFileName " >;& lt/param>。

84 /// <。退货>。& lt/returns>。

85公共静态bool ExportToCerFile(字符串subjectName,字符串cerFileName)

86 {

87 subject name = " CN = "+subject name;

88 x509 store store = new x509 store(StoreName。我的,存储位置。CurrentUser);

89店。Open(OpenFlags。read write);

90 X509 certificate 2 collection store collection =(X509 certificate 2 collection)存储。证书;

91 foreach(store collection中的X509Certificate2 x509)

92 {

93 if (x509。Subject == subjectName)

94 {

95调试。打印(字符串。格式("证书名称:{0} ",x509。主语));

96 //byte[] pfxByte = x509。导出(X509ContentType。Pfx,密码);

97字节[] cerByte = x509。导出(X509ContentType。cert);

98使用(FileStream fileStream =新FileStream(cerFileName,FileMode。创建))

99 {

100 //将数据逐字节写入文件。

101 for(int I = 0;i <。cerByte。长度;i++)

102 fileStream。写字节(Cerbyte[I]);

103 //将流位置设置到文件的开头。

104 fileStream。Seek(0,SeekOrigin。begin);

105 //读取并验证数据。

106 for(int I = 0;i <。fileStream。长度;i++)

107 {

108 if (cerByte[i]!= fileStream。ReadByte())

109 {

110 fileStream。close();

111返回false

112 }

113 }

114 fileStream。close();115 }

116 }

117 }

118店。close();

119 store = null

120 storecollection = null

121返回真;

122 }

123 #endregion

124

125 #区域从证书获取信息

126//& lt。摘要>。

127 ///根据私钥证书获取证书实体。获得实体后,可以根据其公钥和私钥进行加密和解密

128 ///加密和解密函数使用了DEncrypt的RSACryption类

129//& lt。/summary>。

130//& lt。param name="pfxFileName " >;& lt/param>。

131//& lt。param name="password ">。& lt/param>。

132//& lt。退货>。& lt/returns>。

133公共静态x509 certificate 2 GetCertificateFromPfxFile(字符串pfxFileName,

134字符串密码)135 {

136试

137 {

138返回新的X509证书2(pfxFileName,密码,X509密钥存储标志。可导出);

139 }

140个捕捉(例外e)

141

{142返回null

143 }

144 }

145//& lt。摘要>。

146 ///去存放区领证

147//& lt。/summary>。

148//& lt。param name="subjectName " >& lt/param>。

149//& lt。退货>。& lt/returns>。

150公共静态150证书2 GetCertificateFromStore(字符串subjectName)

151 {

152 subject name = " CN = "+subject name;

153 X509 store store = new X509 store(StoreName。我的,存储位置。CurrentUser);

154店。Open(OpenFlags。read write);

155 X509 certificate 2 collection store collection =(X509 certificate 2 collection)存储。证书;

156 foreach(store collection中的X509Certificate2 x509)

157 {

158 if (x509。Subject == subjectName)

159 {

160返回x509

161 }

162 }

163店。close();

164 store = null

165 storecollection = null166返回null

167 }

168//& lt。摘要>。

169 ///根据公钥证书,返回证书实体

170//& lt。/summary>。

171//& lt。param name="cerPath">。& lt/param>。

172公共静态X509证书2 GetCertFromCerFile(字符串证书路径)

173 {

174试试

175 {

176返回新的x509 certificate 2(cerPath);177 }

178捕获(例外e)179

180返回null181 }

182 }

183 #endregion184 }

SSL证书采用加密技术,技术含量高。今后,GDCA将继续推荐更多关于SSL证书的技术知识。让大家正确认识SSL证书,快速正确部署HTTPS安全协议。更多信息请关注GDCA。

1.《cer 详解关于Pfx与cer之间的关系》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《cer 详解关于Pfx与cer之间的关系》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/797819.html

上一篇

刘恺威与杨幂 刘恺威爆瘦,与杨幂结束婚姻关系后,发展越来越差。

下一篇

亚冠联赛赛程 曝亚冠赛程:东亚区小组赛4月21日开始,40支球队分10个小组

银行卡忘记密码 银行卡密码忘了怎么办 银行卡密码忘记了怎么办

在我们的生活中,大多数地方都需要密码,其中使用频率最高的是手机密码、APP登录密码、各种支付软件密码以及最重要的银行卡密码。有时很难避免记住错误,或者干脆不记得。那么,忘记银行卡密码怎么办? 银行卡密码是我们去银行取款或办理其他业务时需要输入的密码。这个密码可以输入...

作鸟兽散 拒交核密码箱?美军最高统帅突然表态,15000名民兵作鸟兽散

  • 作鸟兽散 拒交核密码箱?美军最高统帅突然表态,15000名民兵作鸟兽散
  • 作鸟兽散 拒交核密码箱?美军最高统帅突然表态,15000名民兵作鸟兽散
  • 作鸟兽散 拒交核密码箱?美军最高统帅突然表态,15000名民兵作鸟兽散

口腔修复工 口腔修复工资格证书简介

一、职业资格证书 职业资格证书是劳动者具备从事某一职业所必需的知识和技能的证明。是劳动者求职、任职、创业的资格证书,是用人单位招用劳动者的主要依据,也是境外就业和对外劳务合作人员进行技能公证的有效凭证。 二、职业资格证书制度 职业资格证书制度是就业制度的重要组成部分...

诡村遗墓 百变大侦探诡室攻略 诡室密码是多少

诡村遗墓 百变大侦探诡室攻略 诡室密码是多少

千变万化的侦探是一款非常受欢迎的脚本杀人app。很多朋友会问千变万化的侦探的密室密码是什么?以下小系列为您带来千变万化的侦探室相关内容,希望对您有所帮助。  密室密码 房间的密码是472138。你可以查出凶手是谁。玩了就知道了。剧透无聊,你说!...

怎么打开rar格式的文件 无需解压如何查看一个归档或压缩文件的内容

怎么打开rar格式的文件 无需解压如何查看一个归档或压缩文件的内容

在本教程中,我们将学习如何在类似Unix的系统中查看归档文件或压缩文件的内容,而无需实际解压缩。在进一步讨论之前,让我们先澄清一下归档文件和压缩文件的概念,这两者之间有着显著的不同。归档是将多个文件或目录合并成一个文件的过程,因此生成的文件不会被压缩。压缩是一种将多...

qq数据库泄露 如果腾讯的数据库被盗了, 2个亿的帐号密码泄露, 那么会怎么样?

  • qq数据库泄露 如果腾讯的数据库被盗了, 2个亿的帐号密码泄露, 那么会怎么样?
  • qq数据库泄露 如果腾讯的数据库被盗了, 2个亿的帐号密码泄露, 那么会怎么样?
  • qq数据库泄露 如果腾讯的数据库被盗了, 2个亿的帐号密码泄露, 那么会怎么样?

bt在线 粉丝福利 | 在线观看BT文件和磁力链接视频攻略

最近,对互联网上资源共享的限制越来越严格。曾经的剧迷和电影迷的曙光百度云,现在推出了“自动限制分享功能”。以前只是自动屏蔽,几个小时就能获得资源。现在...想这么残忍,就要感叹科技发达。 以前是我编档补哭主,现在没机会哭了。结果衍生出了BT文件和磁性链接,但是大家都...

apk签名 Android之apk文件签名——keytool 和 jarsigner

  • apk签名 Android之apk文件签名——keytool 和 jarsigner
  • apk签名 Android之apk文件签名——keytool 和 jarsigner
  • apk签名 Android之apk文件签名——keytool 和 jarsigner