我想通过SSL套接socket.io。 我已阅读其他答案,但没有任何效果
这是我的代码:
var ssl_options = {
key : fs.readFileSync(my_key_path),
cert : fs.readFileSync(my_cert_path)
};
var protocol = "https";
preparedApp = require(protocol).createServer(ssl_options,app);
var io = require('socket.io')(preparedApp);
preparedApp.listen(8080, function(){});
io.on('connection', function(socket){});
这是我的ssl_options的日志......
{ key: <Buffer 41 ...>,
cert: <Buffer 4a ...> }
标题throw new Error('Missing PFX or certificate + private key.');
中的错误导致此错误。有谁知道可能会发生什么?这个答案的其他解决方案都没有解决我的问题。
答案 0 :(得分:2)
为您的私钥使用PEM(RSA)格式。检查私钥是否为base64编码,包含在“----- BEGIN RSA PRIVATE KEY -----”和“----- END RSA PRIVATE KEY -----”之间
来自文档:
或
将私钥转换为RSA PEM:openssl rsa -in <PATH TO KEY> -out key.pem -outform PEM
要创建PKCS#12捆绑包,请使用openssl pkcs12 -export -in cert.pem -inkey key.pem -certfile ca.pem -out host.pfx
- 添加 -
要确保证书是PEM编码,请运行openssl x509 -in <PATH TO CERT> -out cert.pem -outform PEM