继续收到错误:0906D06C:PEM例程:PEM_read_bio:无起始行

时间:2016-08-01 16:09:55

标签: node.js express openssl cryptojs xero-api

在尝试联系Xero API时试图解决Node.js上的错误。

我使用了'.cer'和'.crt'和'.pem'的一系列组合。

我遵循了许多StackOverflow海报的建议。

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

Public Sub DashboardSupplier()
    Dim category As String
    Dim supplierArray() As String
    Dim c As Integer
    Dim n As Long
    Worksheets("Dashboard Supplier View").Activate
    category = Range("categoryName").Value
    'Suppliers for selectec category
    If category = "Computing Solutions" Then
        Worksheets("ComputingSolutions").Activate
        n = CLng(Range("supplierAmount").Text)
        ReDim supplierArray(1 To n) As String
        For c = 1 To n
            supplierArray(c) = Cells(3 + c, 1)
        Next c
        Worksheets("Dashboard Supplier View").Activate
        For c = 1 To n
            Cells(6 + c, 4) = supplierArray(c)
        Next c
    End If
End Sub

那里的人有一些见解吗?

Xero API说它想要一个X509证书......我甚至不打电话。

2 个答案:

答案 0 :(得分:4)

您需要一个PEM编码的密钥,因为xero模块只是调用节点的内置crypto模块来签署一些数据。这些类型的键以

开头
-----BEGIN RSA PRIVATE KEY-----

结束
-----END RSA PRIVATE KEY-----

中间有base64编码的数据。

您可以使用openssl命令行实用程序生成此类密钥:

openssl genrsa -out privateKey.pem 2048

然后在节点中阅读privateKey.pem,如:

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

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

答案 1 :(得分:-1)

检查您的证书格式。回车符 (\r) 和换行符 (\n) 应该以 .cer 或 .crt 格式存在。邮递员期待这一点。 这可以通过在记事本中打开来验证。