uwebsocket wss server как запустить?

Подскажите, использую библиотеку uwebsocket для С++, сперва писал просто без SSL, коннектился через консоль в Chrome ws = new WebSocket("ws://localhost:1457"); все работает шикарно. Настала пора прикрутить шифрование, открыл файл с примером https://github.com/uNetworking/uWebSockets/blob/master/examples/EchoServer.cpp долго мучался а где мне взять privatekey.pem и certificate.pem

я установил openssl (https://slproweb.com/products/Win32OpenSSL.html) что надо писать, что бы получить нужные мне сертификаты? Должно ли быть у меня 2 комплекта сертификатов, один для localhost, пока отлаживаю сервер, и 1 на внешний IP, когда сервер будет общедоступен через интернет? как их сгенерировать?

я запускал после установки openssl консоль (из папки С:\Program Files\OpenSSL-Win64) и с найденной на англоязычном ресурсе командой req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt, конвертировал их .pem и указал пути до него. Но в итоге, сервер как работал на ws://localhost:1457 так и работает. на wss://localhost:1457 не коннектится, Chrome пишет VM102:1 WebSocket connection to 'wss://localhost:1457/' failed: (anonymous) @ VM102:1

что я делаю не так? Подскажите либо с кодом для uwebsocket либо с сертификатами SSL? Спасибо.

Ниже код сервера, лишнее, касаемо обработки команд я подтёр.

        uWS::SSLApp(
            {
                .key_file_name = "C:\\cpp\\privateKey.pem",
                .cert_file_name = "C:\\cpp\\certificate.pem",
                .passphrase = "1234"
            }
        ).ws<UserConnection>("/*", {
    
            .compression = uWS::DISABLED,
            .maxPayloadLength = 16 * 1024 * 1024,
            .idleTimeout = 600,
            .maxBackpressure = 16 * 1024 * 1024,
            .closeOnBackpressureLimit = false,
            .resetIdleTimeoutOnSend = true,
            .sendPingsAutomatically = false,
            .upgrade = nullptr,
            .open = [](auto* ws) {
                UserConnection* data = (UserConnection*)ws->getUserData();
                    
            },
            .message = [](auto* ws, std::string_view message, uWS::OpCode opCode) {
                 
            },
            .drain = [](auto* ws) {
            
            },
            .ping= [](auto* ws, std::string_view pingmes) {
    
            },
            .pong = [](auto* ws, std::string_view pongmes) {
    
            },
            .close = [](auto* ws, int code, std::string_view message)
            {
                UserConnection* data = (UserConnection*)ws->getUserData();
                std::cout << "User #" << data->user_id << " has disconnected!\n";
            },
            }).listen(port, [&port](auto* token) {
                if (token) {
                   // std::cout << "\n\n\n\n\n\n\n\n\n\n";
                    std::cout << "Server started successfully on port " << port << std::endl;
                }
                else std::cout << "Server failed to start" << std::endl;
                }).run();
              
    }

Ответы (0 шт):