我正在尝试使基于JavaScript的WebSocket客户端与C ++服务器一起工作。 问题是,我不确定如何对客户端进行身份验证。 我在服务器端使用Boost.Beast库,只是为了测试目的获取了异步服务器示例。 该服务器示例包含一个自签名服务器证书,但我不知道如何将其用于客户端。
我尝试使用Simple WebSocket Client Firefox插件进行连接,但是我不知道如何通过我的请求传递证书,因此当然也不起作用。
服务器的代码与您在此处的示例中的代码完全相同: Async Server example code
可以在server_certificate.hpp标头中找到自签名证书: server_certificate.hpp
我的客户端代码如下(缺少证书通行证):
<script>
const ws = new WebSocket("wss://127.0.0.1:5555");
ws.addEventListener("open", () => {
alert("connected");
});
ws.addEventListener("message", e => {
alert(e);
var messages = document.getElementById("messages");
messages.value = messages.value + e.data + "\n";
});
function send()
{
var username = document.getElementById("username");
var message = document.getElementById("message");
ws.send(username.value + ":" + message.value);
}
ws.onerror = function(error) {
alert(`[error] ${error.message}`);
};
</script>
通过此操作,我在发出连接请求后收到“ sslv3警报错误证书”响应。 ws.onerror函数没有任何错误消息。
请指向正确的方向!