我的公司刚刚从 Thawte 更新了数字证书。我之前使用的证书带有“spc”扩展名。我收到的新证书以“p7b”结尾。
虽然我可以直接使用这个 p7b 文件进行签名,但我只是想知道是否有方法将其转换为 spc 文件,然后我可以像以前一样使用它进行签名。
直接使用 p7b 进行签名是一种推荐的做法吗?其次,如果有的话,这两种文件类型之间到底有什么关系?
答案1
这些只是两个不同的文件扩展名PKCS #7文件。您可以简单地将其从 .p7b 重命名为 .spc。
不幸的是,我不相信 PKCS 规范曾经指定过文件类型的文件扩展名、MIME 类型或“幻数”(前 4 个字节)(公平地说,它们的文件类型大多基于文本,因此幻数并不适用),因此不同的实现者对相同的 PKCS 相关文件类型使用了不同的文件扩展名。
[编辑:我之前曾在这里随口写过一份备忘单,但后来我意识到我犯了一个错误。这是维基百科上 X.509 文章中更好的备忘单:]
http://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions
证书文件扩展名
X.509 证书的常见文件扩展名是:
- .pem-(隐私增强邮件)Base64 编码的 DER 证书,包含在“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”之间
- .cer、.crt、.der- 通常为二进制 DER 格式,但 Base64 编码的证书也很常见(请参阅上文的 .pem)
- .p7b,.p7c- PKCS#7 SignedData 结构不含数据,仅含证书或 CRL
- .p12- PKCS#12,可能包含证书(公共)和私钥(受密码保护)
- .pfx- PFX,PKCS#12 的前身(通常包含 PKCS#12 格式的数据,例如在 IIS 中生成的 PFX 文件)
PKCS#7 是用于对数据进行签名或加密(正式名称为“封装”)的标准。由于需要证书来验证签名数据,因此可以将它们包含在 SignedData 结构中。.P7C 文件是退化的 SignedData 结构,没有任何要签名的数据。
PKCS#12 由 PFX(个人信息交换)标准发展而来,用于在单个文件中交换公共和私有对象。
我还看到了来自相关的 Server Fault 文章到有用的 Microsoft 支持知识库文章这证实您可以将.p7b 重命名为.spc。