cpp-httplib https 服务器无法在 Linux 上运行

cpp-httplib https server not working on Linux

我正在尝试使用 C++ 中的 cpp-httplib 在 linux 上创建一个 HTTPS 服务器 运行ning。 (https://github.com/yhirose/cpp-httplib) 当我使用 Windows 时一切正常。但是在 linux 只有 HTTP 服务器工作。 似乎 HTTPS 服务器没有打开一个我不明白的端口...... 在终端中键入:sudo netstat -tuplen 预期端口 8080 仅在 运行 连接 HTTP 服务器时显示,而不是 运行 连接 HTTPS 服务器时显示。 我的防火墙似乎也处于非活动状态: sudo ufw status 给出 Status: inactive
也许我链接错了,但一切似乎 运行 都很好。 我是 C++ 和 Linux 的新手,所以我很可能犯了一个愚蠢的错误。 如果重要的话,我只是 运行 Clion 中的这段代码..

这是 HTTP 服务器的代码(按预期工作并 运行ning):

#include <iostream>
#include "./httplib.h"

int main(void) {
    httplib::Server svr;

    svr.Get("/hi", [](const auto&, auto& res) {
        res.set_content("This is a test response", "text/plain");
    });

    std::cout << "start server..." << std::endl;
    svr.listen("192.158.1.38", 8080);


    std::cin.get();
}

这是 HTTPS 服务器的代码(运行正在但未打开端口):


#pragma comment (lib, "crypt32")

#define CPPHTTPLIB_OPENSSL_SUPPORT
#include <iostream>
#include "./httplib.h"


// These are shown by Clion that they are not used...
#include </usr/include/openssl/conf.h>
#include </usr/include/openssl/evp.h>
#include </usr/include/openssl/err.h>

int main(void) {

    /// behind svr there have to be keys can not be self signed keys like in 
    httplib::SSLServer svr("./keys/localhost.crt", "./keys/localhost.key");


    svr.Get("/hi", [](const auto&, auto& res) {
        res.set_header("Access-Control-Allow-Origin", "*");
        res.set_content("This is a test response", "text/plain");

    });



    std::cout << "start server..." << std::endl;
    svr.listen("192.158.1.38", 8080);


    std::cin.get();

}

我的 CMakeLists.txt 看起来像这样:

cmake_minimum_required(VERSION 3.20)
project(TLS_Server)

set(CMAKE_CXX_STANDARD 17)

add_executable(TLS_Server main.cpp)


find_package(OpenSSL REQUIRED)


find_package(Threads REQUIRED)
target_link_libraries(TLS_Server PRIVATE OpenSSL::SSL PRIVATE Threads::Threads)

好的,如评论中所述,问题是找不到证书。我现在已经给出了绝对路径并且它工作正常。 谢谢!

PS:正如我所说:“可能是一个愚蠢的错误”..