Я пытаюсь заставить свой клиент WebSocket на основе javascript работать с моим сервером C ++. Проблема в том, что я не знаю, как аутентифицировать клиента. Я использую библиотеку Boost.Beast для серверной части, просто взял пример сервера asyn c для тестирования. В этом примере сервера есть самозаверяющий сертификат сервера, но я не знаю, как его использовать для клиентов.
Я пытался подключиться с помощью плагина Simple WebSocket Client Firefox, но я этого не сделал. Я не знаю, как передать сертификат с моим запросом туда, поэтому, конечно, это тоже не сработает.
Код для сервера точно такой же, как в примере, который вы найдете здесь: Asyn c Пример кода сервера
Самозаверяющий сертификат можно найти в заголовке 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 alert bad certificate» после выполнения запроса на подключение. Я не получаю сообщений об ошибках от функции ws.onerror.
Пожалуйста, укажите мне правильное направление!