我正在使用 crypto
验证证书的模块,但我的证书和我的公钥都在 德格式。看来crypto
模块不接受这种格式。
有没有办法(或模块)使用 NodeJS 将 DER 转换为 PEM 格式?我找不到任何东西,也无法使用命令行通过 shell 调用 openssl。
更新:这与 HTTPS 证书无关。这是关于一般的 X.509 证书。如果您将问题标记为否定,请发表评论以证明其合理性。如果您无法提供帮助,请不要愚蠢。
最佳答案
我认为 PEM 格式只是经过 base64 编码的 DER 二进制数据,分成 64 个字符行,并包裹在 '-----BEGIN CERTIFICATE-----' 和 '-----END CERTIFICATE- 之间----'。
所以你可以这样做:
var prefix = '-----BEGIN CERTIFICATE-----\n';
var postfix = '-----END CERTIFICATE-----';
var pemText = prefix + derBuffer.toString('base64').match(/.{0,64}/g).join('\n') + postfix;
您不需要在后缀前放置一个 '\n',因为 der 缓冲区的最后一个匹配项应该是一个空字符串 '',所以
derBuffer.toString('base64').match(/.{0,64}/g).join('\n')
的末尾会有一个 '\n'
关于javascript - Node JS : Validate certificate in DER format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992865/