[英]Node.js HTTPS request using Elliptic Curve key
我想构建一个HTTPS客户端,该客户端连接到需要相互认证的HTTPS Server。 此外,客户端密钥是椭圆曲线密钥而不是RSA密钥。 为了支持椭圆曲线键,我用OpenSSL 1.0.2a重新编译了Node.js。
在我的node.js程序中,我设置了选项以指定密钥和证书,
var options = {
// These are necessary only if using the client certificate authentication
key: fs.readFileSync('client-key.pem'),
cert: fs.readFileSync('client-cert.pem'),
当我运行它时,出现此错误:
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Object.createSecureContext (_tls_common.js:110:19)
at Object.exports.connect (_tls_wrap.js:854:21)
at Agent.createConnection (https.js:84:14)
at Agent.createSocket (_http_agent.js:196:16)
at Agent.addRequest (_http_agent.js:168:23)
at new ClientRequest (_http_client.js:156:16)
at Object.exports.request (http.js:51:10)
at exports.request (https.js:138:15)
...
这表明Node.js无法读取EC密钥。 此错误消息类似于openssl尝试将密钥作为X509证书读取时:
openssl x509 -text -in sample.key
unable to load certificate
140735234208608:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE
如何强制Node.js将此密钥作为EC密钥加载?
正确配置openssl 1.0.2a后,将加载EC密钥。 确保Node.js的openssl版本正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.