Error: error:0909006C:PEM routines:get_name:no start line - node
Error: error:0909006C:PEM routines:get_name:no start line - node
我已经克隆了这个存储库 (https://github.com/docusign/code-examples-node),并且相信我已经输入了所有必需的密钥和代码。但是,当我尝试使用 JWT 进行身份验证时,出现此错误:
at Sign.sign (internal/crypto/sig.js:105:29)
at Object.sign (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\jwa\index.js:152:45)
at Object.jwsSign [as sign] (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\jws\lib\sign-stream.js:32:24)
at Object.module.exports [as sign] (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\node_modules\jsonwebtoken\sign.js:189:16)
at generateAndSignJWTAssertion (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\src\ApiClient.js:62:16)
at exports.requestJWTUserToken (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\src\ApiClient.js:890:19)
at _DsJwtAuth._getToken [as getToken] (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:85:33)
at log (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:174:33)
at _DsJwtAuth.DsJwtAuth.login (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:184:5)
at commonControllers.login (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\commonControllers.js:36:16) {
library: 'PEM routines',
function: 'get_name',
reason: 'no start line',
code: 'ERR_OSSL_PEM_NO_START_LINE```
这通常意味着 PEM 文件缺少指示关键部分已经开始的指示符。
PEM 文件的结构如下:
Intitial Data to be processed
-----Begin <Type>-----
Key Information
-----End <Type>-----
可在此处找到这些文件的标准:https://www.rfc-editor.org/rfc/rfc7468
您能否确认您正在使用的 PEM 文件中是否存在 ----- 开始/结束行?请不要 post 这里的实际文件,如果它们存在于 PEM 中,我们将希望您使用 DocuSign 打开一个支持案例,以便我们保留任何必要的私人数据以进行故障排除。
您可以在此处验证您的证书:https://www.sslchecker.com/certdecoder。
在我的例子中,我粘贴错误,漏掉了一个破折号:
- -----BEGIN CERTIFICATE-----
+ ----BEGIN CERTIFICATE-----
请注意前 5 个破折号很重要。
如果使用 docker,我有一些观察。
- 尝试将
.env
值设为纯文本。不是字符串文字。
- 获取要编码的项目时,将
'\n'
替换为 '\n'
如果您只是将它用作沙盒项目,您可以使用:(没有私钥)
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');
如果不是沙箱,你必须生成一个privteKey。
你可以在 jsonwebtoken 文档上看到它:
https://www.npmjs.com/package/jsonwebtoken
尝试从 -->
中删除 .nprm
C:\Users{用户名}
然后就可以正常工作了
我已经克隆了这个存储库 (https://github.com/docusign/code-examples-node),并且相信我已经输入了所有必需的密钥和代码。但是,当我尝试使用 JWT 进行身份验证时,出现此错误:
at Sign.sign (internal/crypto/sig.js:105:29)
at Object.sign (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\jwa\index.js:152:45)
at Object.jwsSign [as sign] (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\jws\lib\sign-stream.js:32:24)
at Object.module.exports [as sign] (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\node_modules\jsonwebtoken\sign.js:189:16)
at generateAndSignJWTAssertion (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\src\ApiClient.js:62:16)
at exports.requestJWTUserToken (C:\Users\BrownJ3\Documents\repos\code-examples-node\node_modules\docusign-esign\src\ApiClient.js:890:19)
at _DsJwtAuth._getToken [as getToken] (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:85:33)
at log (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:174:33)
at _DsJwtAuth.DsJwtAuth.login (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\DSJwtAuth.js:184:5)
at commonControllers.login (C:\Users\BrownJ3\Documents\repos\code-examples-node\lib\commonControllers.js:36:16) {
library: 'PEM routines',
function: 'get_name',
reason: 'no start line',
code: 'ERR_OSSL_PEM_NO_START_LINE```
这通常意味着 PEM 文件缺少指示关键部分已经开始的指示符。
PEM 文件的结构如下:
Intitial Data to be processed
-----Begin <Type>-----
Key Information
-----End <Type>-----
可在此处找到这些文件的标准:https://www.rfc-editor.org/rfc/rfc7468
您能否确认您正在使用的 PEM 文件中是否存在 ----- 开始/结束行?请不要 post 这里的实际文件,如果它们存在于 PEM 中,我们将希望您使用 DocuSign 打开一个支持案例,以便我们保留任何必要的私人数据以进行故障排除。
您可以在此处验证您的证书:https://www.sslchecker.com/certdecoder。
在我的例子中,我粘贴错误,漏掉了一个破折号:
- -----BEGIN CERTIFICATE-----
+ ----BEGIN CERTIFICATE-----
请注意前 5 个破折号很重要。
如果使用 docker,我有一些观察。
- 尝试将
.env
值设为纯文本。不是字符串文字。 - 获取要编码的项目时,将
'\n'
替换为'\n'
如果您只是将它用作沙盒项目,您可以使用:(没有私钥)
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');
如果不是沙箱,你必须生成一个privteKey。
你可以在 jsonwebtoken 文档上看到它: https://www.npmjs.com/package/jsonwebtoken
尝试从 -->
中删除 .nprmC:\Users{用户名}
然后就可以正常工作了