#WebSocket rust native app to local web extension wont connect in wss mode

4 messages · Page 1 of 1 (latest)

stark urchin
#

Ws works fine for them to communicate. when I add TLS the socket is opened fine (shown on nmap) however if i try to connect with JS i get on the rust "{ code: -2146893017, kind: Uncategorized, message: "An unknown error occurred while processing the certificate." }".

 use native_tls::{Identity, TlsAcceptor, TlsStream};

use std::fs::{File};
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::sync::{Arc};
use std::thread;

fn main() {
     
    let mut cert_file = File::open("cert.pem").unwrap();
    let mut certs = vec![];
    cert_file.read_to_end(&mut certs).unwrap();
    let mut key_file = File::open("key.pem").unwrap();
    let mut key = vec![];
    key_file.read_to_end(&mut key).unwrap();
    let pkcs8 = Identity::from_pkcs8(&certs, &key).unwrap();

    let acceptor = TlsAcceptor::new(pkcs8).unwrap();
    let acceptor = Arc::new(acceptor);

    let listener = TcpListener::bind("127.0.0.1:8080").unwrap();


    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                let acceptor = acceptor.clone();
                thread::spawn(move || {
                    let stream = acceptor.accept(stream).unwrap();
                    handle_client(stream);
                    fn handle_client(mut stream: TlsStream<TcpStream>) {
                        let mut buf = [0; 1024];
                        let read = stream.read(&mut buf).unwrap();
                        let received = std::str::from_utf8(&buf[0..read]).unwrap();
                        stream
                            .write_all(format!("received '{}'", received).as_bytes())
                            .unwrap();
                    }
                });
            }
            Err(_e) => { /* connection failed */ }
        }
    }
}
var socket = new WebSocket('wss://127.0.0.1:8080');
socket.onopen = function() {
  // Connection opened
  console.log("Connection opened");
  socket.send("Hello, world!");
};
stark urchin
opaque geyser