如何在 Digital Ocean 服务器上配置 SSL 证书以托管连接到同一 Droplet 上的 GoLang 服务器的 ReactJS 应用程序?

如何在 Digital Ocean 服务器上配置 SSL 证书以托管连接到同一 Droplet 上的 GoLang 服务器的 ReactJS 应用程序?

我在 Digital Ocean Droplet 上托管了一个国际象棋应用程序网站。

在服务器上,我使用以下方式提供一个静态 React 应用pm2。我还运行了一个 GoLang 服务器,该服务器以单个 Websocket 端点作为后端。因此,这两个服务器位于同一个 droplet 上,即同一个 IP 地址上。

有一个负载均衡器使用通过 Digital Ocean 的 Lets Encrypts 集成生成的 SSL 证书将 HTTPS 转发到 HTTP。

该网站在 Chrome 上运行良好(参见tonycodes.com)。但是在手机和Safari浏览器上,却出现错误。

尝试连接 Golang 服务器 websocket 时,Safari 的 Web 检查器返回此错误:

WebSocket network error: OSStatus Error -9807: Invalid certificate chain

这些是负载均衡器设置:

负载均衡器截图

GoLang websocket 端点位于端口 8081 上。React 前端位于端口 80 上。

我不熟悉 SSL 加密证书链规则,我可能会因为此设置而违反这些规则。任何帮助我都非常感谢,提前谢谢您!

答案1

您的代码正在尝试连接到。但您的服务器证书不是为“157.230.65.223”颁发的,而是为“tonycodes.com”颁发的。请求的 URL 与收到的证书不匹配wss://157.230.65.223:8081/uci总是导致 TLS 连接出现严重故障,因为不这样做就会绕过主要的 TLS 安全措施之一。

将您的 websocket URL 更改为。wss://tonycodes.com:8081/uci

相关内容