在尝试联系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证书......我甚至不打电话。
答案 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 格式存在。邮递员期待这一点。 这可以通过在记事本中打开来验证。