2017-10-02 12 views
0

ここには同様の質問がたくさんありますが、読書の時間の後に私は私の解決策を見つけることができません。したがって:PEMファイルのnodejs jsonwebtoken:エラー "PEM_read_bio:開始行がありません"

jsonwebtokenを使用してJSON Webトークンに署名するためにjwk-to-pemを使用しようとしています。私は以前これを達成しましたが、今では同じコードが機能しません。 jwt.signを生成してpemを呼び出した後、私はerror:0906D06C:PEM routines:PEM_read_bio:no start lineを得ます。 一般的な理由として、間違った改行(\rなど)や一般的に間違った形式が含まれることがあります。私は実際にはコアのnodejsコードを掘り出して、the lineがこのエラーを投げかけていることが分かりました。

数え切れないほどの調整と試行は解決できませんでした。具体的に:

  • 私は、例えば、最初と最後の行ごとに異なる文字列を試してみました、すべての改行が\n
  • であることを確認しました-----BEGIN PUBLIC KEY-----または-----BEGIN RSA PUBLIC KEY-----
  • 私は最後の行は、私は、ノードのfsを使用して、それをディスクにpem文字列を記述しようとした再読み込み最後の文字として\n
  • が含まれていることを確認しました。
  • 私はpemファイルをいくつかの他のファイルと比較しました。 vi -bまたは正規表現を使用します。私はLinuxツールを使用して、ランダムpemファイルを生成しにそれを与えることを試みたすべての他の列はノード
  • によって支持encouding jwt.signからpemコンテンツにRAWファイルバッファを渡すだけでなく、pem.toString('utf8')ならびに試み
  • jwt.sign。具体的に:ssh-keygen -t rsa -b 2048 -f jwtRS256.key
    openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.pem

私はここで何をしないのですか?これは私が考えなかった可能性のある原因は何ですか?

答えて

0

私は非常に簡単な説明を見つけました。私は誤って秘密鍵の代わりにパブリックを使用していました。 openssl/cryptoによって投げられたエラーは、誤解を招きます。

プライベートpem /キーを使用すると、署名は期待通りに機能します。

関連する問題