gpt4 book ai didi

node.js - 带有 express : Missing PFX or certificate + private key. 的 socket.io 中的 SSL

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:26 28 4
gpt4 key购买 nike

我想通过 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.');。有谁知道会发生什么?这个答案的其他解决方案都没有解决我的问题。

最佳答案

为您的私钥使用 PEM (RSA) 格式。检查私钥是否为base64编码,包含在“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”之间

来自文档:

  • key: 包含服务器私钥的字符串或Buffer,格式为PEM
  • cert : 包含 PEM 编码证书的字符串
  • passphrase:私钥或 pfx 的一串密码[可选默认值:null]

  • pfx : 保存 PFX 或 PKCS12 编码私钥、证书和 CA 证书的字符串或缓冲区

将私钥转换为 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

关于node.js - 带有 express : Missing PFX or certificate + private key. 的 socket.io 中的 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33334268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com