如何将.crt字符串转换为.der证书二进制文件并将其保存到Redis中?

时间:2016-04-11 14:40:23

标签: node.js ssl ssl-certificate

我正在尝试将.crt字符串转换为.der证书并将其保存到Redis中。我尝试使用Nodejs

复制以下步骤
openssl x509 -outform der -in certificate.pem -out certificate.der
openssl rsa -outform DER -in key.pem -out key.der
redis-cli -x HMSET domain:testsite1.com cert < testsite1.com.der
redis-cli -x HMSET domain:testsite1.com key < testsite1.com.key.der

.crt 字符串如下所示

-----BEGIN CERTIFICATE-----
XXXXXXXXXXX
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
XXXXXXXXXX
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
XXXXXXXXX
-----END CERTIFICATE-----

这是我使用node-forge npm和redis失败的尝试。

var certDER = forge.asn1.toDer(forge.pki.certificateToAsn1('/opt/resty/ssl/*.ngdeploy.com.chained.crt',{encoding: 'utf8'}));
REDIS.hmset('test','cert',certDER);

我尝试使用Google搜索解决方案,但我没有发现将 .crt 字符串转换为 .der 二进制文件。我正在寻找Node.js解决方案,而不是OpenSSL解决方案。请指教。

1 个答案:

答案 0 :(得分:1)

文件的扩展名通常毫无意义。你寻找的接缝是一种从文本或PEM格式(Base64)转换为二进制或DER的方法。

最简单的方法是使用Openssl,但如果你必须使用JS this thread可能有助于确保你反转转换(PEM到DER,而不是DER到PEM)