Mantener recibiendo el error:0906D06C:PEM rutinas:PEM_read_bio:no hay línea de salida

Volviendo loco tratando de resolver el error Node.js al intentar ponerse en contacto Xero API.

He usado un montón de combinaciones de ‘.cer «y».crt’ y ‘.pem’.

He seguido el consejo de un número de StackOverflow carteles.

Node.js https pem de error: error:0906D06C:PEM rutinas:PEM_read_bio:no hay línea de salida

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
    at Error (native)
    at Sign.sign (crypto.js:327:26)
    at Xero.oa._createSignature (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/index.js:19:68)
    at exports.OAuth._getSignature (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:90:15)
    at exports.OAuth._prepareParameters (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:300:16)
    at exports.OAuth._performSecureRequest (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/node_modules/oauth/lib/oauth.js:309:31)
    at Xero.call (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/xero/index.js:51:20)
    at /Users/BeardedMac/projects/clause/clause-mean-stack/routes/external.js:47:10
    at Layer.handle [as handle_request] (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/layer.js:95:5)
    at /Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/router/index.js:271:10)
    at expressInit (/Users/BeardedMac/projects/clause/clause-mean-stack/node_modules/express/lib/middleware/init.js:33:5)

Alguien por ahí tiene algunos detalles?

El Xero API dice que quiere un certificado X509…ni siquiera estoy haciendo la llamada.

InformationsquelleAutor mjabraham | 2016-08-01

1 Kommentar

  1. 4

    Usted necesita un PEM-codificado clave como la xero módulo simplemente llama nodo integrado en crypto módulo para firmar algunos datos. Los tipos de teclas de inicio con

    -----BEGIN RSA PRIVATE KEY----- 
    

    y final con

    -----END RSA PRIVATE KEY----- 
    

    con los datos codificados en base64 en el medio.

    Puede generar una clave con la openssl utilidad de línea de comandos:

    openssl genrsa-out privateKey.pem 2048 
    

    A continuación, leer privateKey.pem en el nodo como:

    var fs = require('fs');
    var privateKey = fs.readFileSync('/path/to/privateKey.pem');
    
    //pass `privateKey` as the RSA private key to the `xero` module ...
    • He usado pem de codificación, no parece estar funcionando. He creado mis certificados de uso de openssl opciones de línea de comandos
    • la llamada a la api de xero del nodo de la biblioteca le pide que introduzcas una CLAVE PRIVADA RSA»; yo he utilizado un número de tipos de archivo de claves privadas, creado por openssl, incluyendo crt, cer, y pem. Independientemente de que la clave puedo usar, me sale el mismo error.
    • Usted puede mostrar el verdadero openssl comandos que usa para generar la clave privada.
    • este es el más reciente: openssl req -newkey rsa:2048 -nuevos -nodos -keyout clave.pem -out de la rse.pem
    • He actualizado mi respuesta con un ejemplo openssl de línea de comandos que deben trabajar.
    • Muchas gracias. Trabajó como un encanto!

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea