具有自签名SSL证书的WebSocket身份验证

时间:2020-06-20 15:01:27

标签: javascript c++ ssl websocket

我正在尝试使基于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函数没有任何错误消息。

请指向正确的方向!

0 个答案:

没有答案