2017-10-02 7 views
0

여기에도 비슷한 질문이 있지만 읽는 데 몇 시간이 지나도 내 솔루션을 찾을 수 없습니다. 따라서 :PEM 파일의 nodejs jsonwebtoken : 오류 "PEM_read_bio : 시작 줄 없음"

jsonwebtoken을 사용하여 JSON 웹 토큰에 서명하려면 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 또는 regex를 사용합니다.
  • 나는
  • 나는 리눅스 도구를 사용하여 임의의 pem 파일을 생성하고 해당를 주려고 모든 다른 문자열이 노드에서 지원 encouding jwt.sign뿐만 아니라 pem.toString('utf8')뿐만 아니라 pem 내용으로 원시 파일 버퍼를 전달 시도 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/키를 사용하면 서명이 예상대로 작동합니다.