【问题标题】:How to convert a .crt string into a .der certificate binary and save it into Redis?如何将 .crt 字符串转换为 .der 证书二进制文件并将其保存到 Redis 中?
【发布时间】:2016-08-01 19:13:17
【问题描述】:

我正在尝试将 .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);

我尝试谷歌搜索解决方案,但我没有找到任何将 .crt 字符串转换为 .der 二进制文件的方法。我正在寻找 Node.js 解决方案,而不是 OpenSSL 解决方案。请指教。

【问题讨论】:

  • 拆分这 3 个证书(一个证书将是 -----BEGIN CERTIFICATE----- XXXXXXXXXXX -----END CERTIFICATE-----. Keep the formating - 64 characters per line) and call openssl x509 -inform PEM -outform DER -in certificate.pem -out certificate.der` 在每个证书上。它应该可以工作。跨度>
  • @pepo 我正在寻找不使用 openssl cli 的 node.js 解决方案。

标签: node.js ssl ssl-certificate


【解决方案1】:

文件的扩展名通常是没有意义的。您要寻找的是一种将文本或 PEM 格式 (Base64) 转换为二进制或 DER 的方法。

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

【讨论】:

    猜你喜欢
    • 2015-03-22
    • 2010-12-08
    • 2012-04-15
    • 2017-09-12
    • 2012-06-25
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多