uWebSockets (C++):安全的 WSS 服务器
uWebSockets (C++): secure wss server
我在C++中使用uWebSockets来托管WebSocket服务器。但是,我需要它是一个安全的wss
服务器,而不仅仅是一个ws
服务器。
我试过这段代码:
uS::TLS::Context tls = uS::TLS::createContext ("./cert.perm", "./key.perm", "passphrase");
if (h.listen (9002, tls)) {
cout << "Game server listening on port 9002" << endl;
h.run();
}
我正在使用这个 shell 命令来生成证书和密钥:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30
然后我尝试使用wss://address
而不是通常的ws://address
连接到我的远程服务器,但是,它无法连接。
知道为什么吗?谢谢
更新 #1
tls
变量似乎实际上是NULL
,所以看起来证书部分不起作用。
更新 #2
我在代码中弄错了文件扩展名,它们应该是pem
而不是perm
.但是,服务器现在不会在wss
和ws
上建立连接。
更新 #3
解决上述问题后,tls
变量现在1
而不是0
(我认为这是NULL
(。
如果您使用的是 Web 浏览器 ws-client 连接到 wss://address,请尝试检查浏览器是否是问题所在。碰巧我创建了自己的证书,但浏览器阻止了连接,因为它们未经任何 CA 认证。在浏览器中输入类似"https://address"的内容,然后为您的"地址"添加安全例外。
我知道
你可以使用uWebSockets for SSL/TLS,但是...我会考虑将TLS/SSL问题与主应用程序分开。
通过将 TLS/SSL 层与应用程序分离,您可以在不重新编译应用程序的情况下更新 TLS/SSL,并简化代码库。
我建议使用 TLS/SSL 代理或隧道,同时让应用程序在本地绑定到环回地址或 unix 套接字。
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 如何在 Minecraft 服务器上执行命令
- 调试编译的服务器在数据库打开时崩溃
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 为什么创建服务器后C++ httplib 库阻塞了我的主线程?
- 每个服务器请求的内存预算
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 使用嵌入式猫鼬服务器托管应用程序
- uWebSockets (C++):安全的 WSS 服务器