我正在使用get-ssl-certificate从auth服务器获取SSL证书。它工作,并带回我一个JSON对象与我们的auth服务器的信息。但我需要一个PEM编码的公钥字符串来完成我的授权。我不知道如何将我得到的对象转换成正确的格式。
有没有办法在Node中轻松完成这项工作?
答案 0 :(得分:0)
我最终使用上面提到的包get-ssl-certificate来从auth服务器获取信息。它返回一个raw
属性,我将其转换为base64字符串,然后格式化。这是我做的:
if (certificate.raw) {
certificate.pemEncoded = pemEncode(certificate.raw.toString('base64'), 64);
}
...
// pemEncode function:
function pemEncode(str, n) {
const ret = [];
for (let i = 1; i <= str.length; i++) {
ret.push(str[i - 1]);
const mod = i % n;
if (mod === 0) {
ret.push('\n');
}
}
const returnString = `-----BEGIN CERTIFICATE-----
${ret.join('')}-----END CERTIFICATE-----`;
return returnString;
}
这对我有用。我将此代码作为PR提交给了库,希望它很快就会作为库的一部分包含在内。与此同时,这就是我们正在使用的,而且运作良好。