gpt4 book ai didi

node.js - SocketIO 在自签名证书上抛出 net::ERR_CERT_AUTHORITY_INVALID

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:17 26 4
gpt4 key购买 nike

我在客户端使用 socket io:

const socket = require('socket.io-client')('https://localhost:4200', {secure: true, rejectUnauthorized: false})

在服务器上:

let https = require('https')
let fs = require('fs')

let options = {
key: fs.readFileSync('cert/my.net.key'),
cert: fs.readFileSync('cert/my.net.cert'),
requestCert: false,
rejectUnauthorized: false,
};

const server = https.createServer(options, require('express')())
const io = require('socket.io')(server)

所有服务都正常启动,但在客户端我得到 polling-xhr.js:263 GET https://localhost:4200/socket.io/?EIO=3&transport=polling&t=MPa6ZuL net::ERR_CERT_AUTHORITY_INVALID

为什么?怎么了?

最佳答案

出于安全原因,浏览器不喜欢自签名证书。

为了在您的开发环境中解决这个问题,我看到了三个选项:

  1. 使用认证单位颁发的证书。

  2. 基于开发环境动态创建您的服务器,不包含证书并直接使用 HTTP 和 WS(而不是 HTTPS 和 WSS)。

  3. 更改开发中使用的浏览器配置,使其接受自签名证书。

    • 例如,对于 Chrome,只需启用 Allow invalid certificates for resources loaded from localhost. (chrome://flags/#allow-insecure-localhost) 设置.

但请记住,您将无法在生产环境中使用自签名证书。

关于node.js - SocketIO 在自签名证书上抛出 net::ERR_CERT_AUTHORITY_INVALID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765559/

26 4 0
文章推荐: ssl - 启用 ColdFusion 沙箱安全时,将 CFHTTP 用于安全站点失败
文章推荐: c# - 登录弹出窗口和 Selenium
文章推荐: c# - 将 IQueryable 分配给 IQueryable 时出现编译错误