2016-08-01 8 views
3

Xero APIに接続しようとしているときにNode.jsでエラーを解決しようとしている。エラーが発生する:0906D06C:PEMルーチン:PEM_read_bio:開始行なし

私は '.cer'と '.crt'と '.pem'の組み合わせを使いました。

私は多くのStackOverflowポスターのアドバイスに従ってきました。そこ

Node.js https pem error: error:0906D06C:PEM routines:PEM_read_bio:no start line

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line 
    at Error (native) 
    at Sign.sign (crypto.js:327:26) 
    at Xero.oa._createSignature (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/index.js:19:68) 
    at exports.OAuth._getSignature (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:90:15) 
    at exports.OAuth._prepareParameters (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:300:16) 
    at exports.OAuth._performSecureRequest (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:309:31) 
    at Xero.call (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/index.js:51:20) 
    at /Users/BeardedMac/projects/clause/clause-mean-stack/routes/external.js:47:10 
    at Layer.handle [as handle_request] (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/layer.js:95:5) 
    at next (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/route.js:131:13) 
    at Route.dispatch (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/route.js:112:3) 
    at Layer.handle [as handle_request] (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/layer.js:95:5) 
    at /Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:277:22 
    at Function.process_params (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:330:12) 
    at next (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:271:10) 
    at expressInit (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/middleware/init.js:33:5) 

誰でもいくつかの洞察力を持っていますか?

Xero APIは、X509証明書が必要だと言っています...私は呼び出しもしません。

答えて

2

xeroモジュールは、ノードの組み込みのcryptoモジュールを呼び出すだけで、一部のデータに署名するため、PEMでエンコードされたキーが必要です。キーのこれらのタイプは

 
-----BEGIN RSA PRIVATE KEY----- 

で始まりとの間にBase64でエンコードされたデータと

 
-----END RSA PRIVATE KEY----- 

で終わります。

あなたはopensslコマンドラインユーティリティを使用して、このようなキーを生成することができます。そして、

 
openssl genrsa -out privateKey.pem 2048 

のようなノードでprivateKey.pemを読む:私はPEMエンコードを使用しました

var fs = require('fs'); 
var privateKey = fs.readFileSync('/path/to/privateKey.pem'); 

// pass `privateKey` as the RSA private key to the `xero` module ... 
+0

、それはしていないようです働いている。 opensslコマンドラインオプションを使用して証明書を作成しました – mjabraham

+1

「説明がうまくいかない」と説明します。 – mscdex

+0

xeroのノードライブラリからのapi呼び出しで、 "RSAプライベートキー"の入力を求められます。私は、opensslによって作成された、crt、cer、およびpemを含むいくつかのプライベートキーのファイルタイプを使用してきました。どのキーを使用しているかにかかわらず、私は同じエラーが発生します。 – mjabraham

関連する問題