自动从https / ws服务器获取服务器证书

编程入门 行业动态 更新时间:2024-10-23 17:26:20

自动从https / ws<a href=https://www.elefans.com/category/jswz/34/1771423.html style=服务器获取服务器证书"/>

自动从https / ws服务器获取服务器证书

我正在git页面上托管一个网站,该网站使用此库在github/websockets/ws上通过安全websocket(wss)的某些点击打开了视频流。当通过简单的websocket(ws)从http页面连接视频时,一切都很好,但是我意识到github页面将通过https托管,并且firefox不允许通过https实现不安全的websocket连接,因此必须使用wss。

为此,我按照websockets ws页面上的步骤进行操作,并且websocket服务器有点“隐藏”在执行证书握手的https服务器后面。问题是这样的:如果我正常使用我的网页并打开一个链接,该链接开始到与视频的wss连接,则该服务器不起作用,服务器不知道该视频存在。如果我首先使用https://IP:999链接通过IP和端口直接访问服务器,它将检索证书,然后在该网站上无限期运行。

是否有一种自然的方法,不需要我尝试访问无头服务器来进行证书握手?我只想打开wss连接,但是必须直接访问服务器以获取证书的开销似乎有些奇怪。

服务器设置如下:

  const server = https.createServer({
    cert: fs.readFileSync('./cert/cert.pem'),
    key: fs.readFileSync('./cert/key.pem'),
}, function (req, res) {
    console.log(new Date() + ' ' +
    req.connection.remoteAddress + ' ' +
    req.method + ' ' + req.url);
    res.writeHead(200);
    res.end("hello foobarbackend\n");
    });
  this.wsServer = new ws.Server({
    server
  })
  this.wsServer.on("connection", (socket, request) => {
    return this.onSocketConnect(socket, request)
  })
  server.listen(9999, '0.0.0.0');

一旦通过https://:9999检索了证书,然后我就可以在wss://:9999的浏览器上播放视频了,那么我肯定丢失了一些东西。

回答如下:

这里的问题完全由SSL / TLS解决。这里的问题是,安全的浏览器将几乎无声地拒绝与具有自签名证书的服务器的WSS://连接。我的证书是自签名的。

这就是用户首先必须直接通过HTTP导航到服务器IP,然后接受警告的原因。从那里照常营业。

要做的是为服务器所在的IP注册一个域名(Droplet)。然后使用certbot为该域生成真实的证书(密钥,cert)。我将上面的cert.pem和key.pem替换为真实生成的证书。域名可以是mywebsitewhatever.app之类的东西。

现在在客户端,您可以打开与wss://mywebsitewhatever.app:9999的连接,浏览器将自动接受它,一切正常。没有警告或导航到警告页面以接受。

更多推荐

自动从https / ws服务器获取服务器证书

本文发布于:2024-05-07 07:14:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755062.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器   证书   https   ws

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!