9

モジュールを使用しcryptoて証明書を検証していますが、証明書と公開鍵の両方がDER形式です。cryptoモジュールがこの形式を受け入れないようです。

NodeJSを使用してDERをPEM形式に変換する方法(またはモジュール)はありますか? 何も見つからず、コマンドラインを使用してシェル経由でopensslを呼び出すこともできません。

更新: HTTPS 証明書に関するものではありません。一般的な X.509 証明書についてです。また、質問に否定的なマークを付けた場合は、それを正当化するためにコメントを残してください。あなたが助けることができないなら、愚かなことをしないでください。

4

3 に答える 3

3

これを行う1つの方法は次のとおりです。

function derToPem(der) {
	var forge = require("node-forge");
	var derKey = forge.util.decode64(der);
	var asnObj = forge.asn1.fromDer(derKey);
	var asn1Cert = forge.pki.certificateFromAsn1(asnObj);
	return forge.pki.certificateToPem(asn1Cert);
};

于 2015-08-15T19:06:39.190 に答える
2

Dominykas の回答は良かったのですが、私の場合、ECCを使用し、node-forgeそれをサポートしていない証明書があります。という名前のモジュールを見つけました。このモジュールはnode-openssl-wrapper、次のように、openssl コマンドを単純な関数呼び出しにカプセル化しているため、完全に機能します。

co(function*() {
  var ossl = require('openssl-wrapper');
  var derCert = new Buffer('...'); // binary DER certificate
  var pemCert = yield ossl.qExec('x509', derCert, { inform: 'der', outform: 'pem' });
});
于 2015-10-20T17:25:23.067 に答える