2016-04-27 179 views
2

我正在使用openssl-wrapper,一个nodejs包。很容易定制参数!但是我得到了一个错误,我无法让代码正常工作。如何在NodeJS中使用openssl-wrapper生成RSA密钥?

的实现代码:

Q.fcall(function caKey() { 
    var params = { 
    des3: true, 
    passout: 'pass:1234567890', 
    out: key, 
    '1024': false 
    }; 
    console.log("caKey", dataFolder, params); 
    return openssl.qExec('genrsa', params); 
}).then(function debugOutput(data) { 
    // onFullfill 
    console.log("done", data); 
    }) 
    .catch(function (err) { 
    // get err 
    console.error(err); 
    }); 

我得到这个错误:

caKey D:/certs-dev { '1024': false, 
    des3: true, 
    passout: 'pass:1234567890', 
    out: 'D:/certs-dev/ca/ca.key' } 
Wed, 27 Apr 2016 11:40:24 GMT openssl-wrapper > openssl genrsa -des3 -passout pass:1234567890 -out D:/certs-dev/ca/ca.key 1024 
15316:error:02001000:system library:fopen:system library:bss_file.c:175:fopen('','rb') 
15316:error:2006D002:BIO routines:BIO_new_file:system lib:bss_file.c:180: 
15316:error:0E078002:configuration file routines:DEF_LOAD:system lib:conf_def.c:197: 

我在想什么?我怎样才能使它工作?

请帮帮我。非常感谢你 !

+1

只是猜测,但问题是OpenSSL配置文件无法找到。你必须做一些事情,比如'设置OPENSSL_CONF = c:\ OpenSSL-Win32 \ bin \ openssl.cfg'。尝试搜索[OPENSSL配置文件窗口](http://www.google.com/search?q=OPENSSL+configuration+file+windows+site%3Astackoverflow.com)以查看类似问题 – jww

+0

谢谢,它为我工作!在NodeJS中,我在调用函数之前设置了一个变量'process.env.OPENSSL_CONF =“c:\ OpenSSL-Win32 \ bin \ openssl.cfg”'。它也很好。 – Vunb

回答

1

由于@jww

按照他的指导,错误是由配置环境变量解决:

set OPENSSL_CONF=c:\OpenSSL-Win32\bin\openssl.cfg 

或设置应用程序的NodeJS环境变量,之前调用该函数。

process.env.OPENSSL_CONF = "c:\OpenSSL-Win32\bin\openssl.cfg"