如何将DER格式的签名转换为PEM格式?
DER格式签名转PEM格式的正确方法
你用的openssl x509命令只适用于X.509证书的格式转换,不能直接用来处理签名数据。签名的转换需要根据其具体结构类型选择对应命令,以下是几种常见场景的处理方式:
1. PKCS#7格式的签名
如果你的DER签名是PKCS#7类型(常用于包裹签名、数字信封这类场景),使用pkcs7命令:
openssl pkcs7 -inform der -in signature.der -out signature.pem
2. 原始裸签名
要是仅为无封装的纯签名值(DER编码的签名数据),可以先转Base64再添加PEM头尾标记:
# 先将DER格式转成Base64编码 openssl enc -base64 -in signature.der -out signature.b64 # 手动给signature.b64添加头:-----BEGIN SIGNATURE-----,尾:-----END SIGNATURE-----,另存为pem文件即可
如果明确签名算法(比如SHA256withRSA),也可以用rsautl命令直接转换:
openssl rsautl -verify -inkey 你的公钥文件.pem -in signature.der -inform der -out signature.pem -pubin
3. CMS格式签名
如果是CMS格式的签名(和PKCS#7类似的通用加密签名标准),使用cms命令:
openssl cms -inform der -in signature.der -out signature.pem
验证转换结果
转换完成后,可以用以下命令检查PEM文件是否有效:
openssl asn1parse -in signature.pem
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

