我正在尝试使用Nginx反向代理https://github.com/nicokaiser/nginx-websocket-proxy/blob/master/simple-wss.conf
将Websocket连接ws://升级到wss://但是我似乎在证书部分遇到了麻烦。我的服务器与客户端位于同一网络上。因此,理想情况下,我希望我的用户登录到“ https://example.com”,然后客户端与“ wss://192.168.1.xxx:xxxx”建立连接。
截至目前,由于NET :: ERR_CERT_COMMON_NAME_INVALID,浏览器已将其阻止。我真的不知道要产生一个自签名证书,浏览器将在本地网络上信任该证书。如果使用域名访问我的服务器,但Google只会为我提供有关如何执行此操作的答案,但是我将始终连接到本地网络IP。感谢您的帮助!
答案 0 :(得分:0)
对于遇到此问题的任何人,我都通过这篇概述架构https://support.plex.tv/articles/206225077-how-to-use-secure-server-connections/
的文章来解决最终发生的事情是,我们设置了一个指向运行nginx的服务器的URL,该服务器解析了子域并将连接重定向到该URL。例如:wss://192-168-1-142.mydomain.com重定向到ws://192.168.1.142,这使浏览器信任该连接
答案 1 :(得分:0)
这行吗?
您的帖子现在已经一岁了,从那以后浏览器变得更加严格。通常,如果您从HTTPS页面访问HTTP内容,则浏览器会产生“混合内容”错误,解决此问题的唯一方法是更改网站设置以允许不安全的内容,这对于用户来说很恐怖。大警告消息。
如果访问HTTPS网址将重定向到HTTP本地IP地址,浏览器是否还会抱怨混合内容?
我和你有类似的情况。我正在编写一个渐进式Web应用程序(PWA),以控制家庭网络上的网络音乐播放器。播放器仅支持HTTP,但是PWA需要HTTPS才能使服务工作者正常工作并允许“安装”该应用。
我的解决方案是在家庭网络上运行本地服务器,该服务器可以通过HTTP与播放器进行通讯。然后,我可以从浏览器通过HTTPS访问此服务器,以便浏览器本身不会进行任何HTTP调用。
如果服务器位于localhost上,则此方法可以正常工作,因为localhost是放宽安全规则的特殊情况。但是,如果服务器在另一台计算机上,那么我如何创建SSL证书,因为(1)似乎在证书的“使用者备用名称”(SAN)部分中不允许使用本地IP地址,并且(2)我不会事先知道服务器的IP地址。
如果您的解决方法可行,则本地服务器可以改用HTTP,因此我不需要证书。本地服务器可以向Web服务器注册自己,然后浏览器可以通过HTTPS连接到Web服务器,该Web服务器将通过HTTP重定向到本地服务器的IP地址。
但这招有用吗?