Есть локальный сервер, с кривым https сертификатом, самоподписанным (но не доверенным для компа). Как можно открыть такую страницу с помощью Wininet? Флаги игнорить ошибки указывал, один фиг не открывает ,InternetOpenUrl возвращает ERROR_INTERNET_INVALID_CA Код (C): void test() { HINTERNET hOpen, hUrl; hOpen = InternetOpenW(L"User-Agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); DWORD dwFlags = INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_SECURE; hUrl = InternetOpenUrlW(hOpen, L"https://localhost/", NULL, 0, dwFlags, 0); if (hUrl) InternetCloseHandle(hUrl); if (hOpen) InternetCloseHandle(hOpen); } Или надо только вручную добавлять серт в доверенные и т.д.?
емнип, с InternetOpenUrlW - никак. только с полным алгоритмом: InternetConnectW / HttpOpenRequestW / InternetQueryOption + InternetSetOption / HttpSendRequestW ...
Там тоже не получается. Да ладно, оно того не стоит - проще купить в инете сервер с letsencrypt, чем со всем этим разобраться. Код (Text): HINTERNET hOpen, hConnect,hReq; hOpen = InternetOpenW(L"User-Agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); hConnect = InternetConnectW(hOpen, L"localhost", INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); DWORD dwFlags = INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_SECURE | SECURITY_FLAG_IGNORE_UNKNOWN_CA; hReq = HttpOpenRequestW(hConnect, L"GET", L"/1.php", NULL, NULL, 0, dwFlags | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_SECURE, 1); HttpSendRequestW(hReq, NULL, 0, NULL, 0); if (GetLastError() == ERROR_INTERNET_INVALID_CA) { DWORD dwFlags; DWORD dwBuffLen = sizeof(dwFlags); InternetQueryOption(hReq, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen); dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA; InternetSetOption(hReq, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof(dwFlags)); } HttpSendRequestW(hReq, NULL, 0, NULL, 0);