sách gpt4 ai đã đi

Máy chủ HTTP API Windows Máy chủ HTTPS

In lại 作者:太空宇宙 更新时间:2023-11-04 12:57:07 28 4
mua khóa gpt4 Nike

我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。

(我不想要客户端 SSL 我只想要一个 HTTPS )

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364640(v=vs.85).aspx

我尝试使用“HttpSetServiceConfiguration HTTP_SERVICE_CONFIG_SSL_SET”,这是我的尝试:

PHTTP_SERVICE_CONFIG_SSL_SET p_ssl_settings = new HTTP_SERVICE_CONFIG_SSL_SET();
p_ssl_settings->KeyDesc.pIpPort = new SOCKADDR();
inet_pton(AF_INET, "0.0.0.0", p_ssl_settings->KeyDesc.pIpPort);
p_ssl_settings->ParamDesc.SslHashLength = 40;
p_ssl_settings->ParamDesc.pSslHash = "dec5a1a952967a613f27dec98ab78a248cd9f782";
p_ssl_settings->ParamDesc.AppId = {0x4dbfb575, 0xe1ef, 0x4239,{0x9a, 0x1d, 0xe9, 0x4c, 0xf8, 0x4d, 0xc2, 0x2d}};
p_ssl_settings->ParamDesc.pSslCertStoreName = nullptr;
p_ssl_settings->ParamDesc.DefaultCertCheckMode = 0;
p_ssl_settings->ParamDesc.DefaultRevocationFreshnessTime = 0;
p_ssl_settings->ParamDesc.DefaultRevocationUrlRetrievalTimeout = 0;
p_ssl_settings->ParamDesc.pDefaultSslCtlIdentifier = nullptr;
p_ssl_settings->ParamDesc.pDefaultSslCtlStoreName = nullptr;
p_ssl_settings->ParamDesc.DefaultFlags = HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT;


const auto retcode = HttpSetServiceConfiguration(
hReqQueue,
HTTP_SERVICE_CONFIG_ID::HttpServiceConfigSSLCertInfo,
p_ssl_settings,
sizeof HTTP_SERVICE_CONFIG_SSL_SET,
nullptr
);

if (retcode != NO_ERROR) {
throw exception(string("HttpSetServiceConfiguration failed with " + to_string(retcode)).c_str());
}

但是当我运行代码时得到错误:87,这是错误的参数错误,但对我来说参数接缝很好。

在此网页上提到 HANDLE 必须为零:(ServiceHandle [in] 保留。必须为零。)

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364503(v=vs.85).aspx

但是当我传递一个 nullptr 或一个值为零的 HANDLE 变量时,我得到错误代码“6”(句柄无效。)所以我不确定

我尝试使用“netsh http add sslcert ipport=0.0.0.0:50001 certhash=de...appid{...}

但是我做错了,因为我收到错误 1312:(我的 appid 不好,但我不知道如何为我的 visual studio c++ .exe 获取它)指定的登录 session 不存在。它可能已经终止。

我尝试使用“https://localhost:50001/”作为 URL。

如何使用 C++“HttpSetServiceConfiguration”或 netsh 正确执行此操作?

1 Câu trả lời

好吧,我发现问题是我错误地使用了 HttpInitialize(Version, Flags, pReserved) 函数,我只给它 'HTTP_INITIALIZE_SERVER' 而我应该添加 'HTTP_INITIALIZE_CONFIG' 所以这是主要问题,尽管它是仅从错误代码 87 很难弄清楚。

原文:

HttpInitialize(HTTPAPI_VERSION_1, HTTP_INITIALIZE_SERVER, nullptr);

固定:

HttpInitialize(HTTPAPI_VERSION_1, HTTP_INITIALIZE_CONFIG | HTTP_INITIALIZE_SERVER, nullptr);

关于c++ - Windows Http 服务器 API HTTPS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039203/

28 4 0
Bài viết được đề xuất: javascript - 调整大小事件的监听器
Bài viết được đề xuất: c++ - 无效的 Mex 函数
Bài viết được đề xuất: c++ - 我如何为用户生成个人访问 token ?
Bài viết được đề xuất: c++ - 为什么我不能创建一个引用 vector ?
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com