Как сделать SSL запрос.
Данный пример показывает, как установить HTTP
соединение через Secure Socket Layer (SSL) или Private Communications
Technology (PCT) используя WinInet API-вызовы. Защищённый HTTP (HTTPS://)
располагаетня на 443 порту.
Следующий пример может быть использован для
установления HTTPS соединения:
...
hOpen = InternetOpen (...);
Connect = InternetConnect (
hOpen, // обработчик InternetOpen
"MyHttpServer", // Имя сервера
INTERNET_DEFAULT_HTTPS_PORT,// По умолчанию HTTPS порт - 443
"", // Имя пользователя
"", // Пароль пользователя
INTERNET_SERVICE_HTTP, // Сервис
0, // Флаги
0 // Контекст
);
hReq = HttpOpenRequest (
hConnect, // Обработчик InternetConnect
"GET", // Метод
"", // Имя объекта
HTTP_VERSION, // Версия
"", // Ссылка (Referer)
NULL, // Дополнительные заголовки
INTERNET_FLAG_SECURE, // Флаги
0 // Контекст
);
...
Всё отличие при использовании HTTPS вместо HTTP
заключается в следующем:
- InternetConnect использует INTERNET_DEFAULT_HTTPS_PORT вместо
INTERNET_INVALID_PORT_NUMBER или INTERNET_DEFAULT_HTTP_PORT
- HttpOpenRequest использует опцию INTERNET_FLAG_SECURE в
добавление ко всем остальным опциям.
Чтобы обойти ошибки сертификации, можно
использовать следующие две опции в HttpOpenRequest либо
в InternetOpenUrl:
- INTERNET_FLAG_IGNORE_CERT_CN_INVALID - Игнорирует ошибки, которые
могут возникать при несовпадении имени хоста
сервера и имени хоста, указанном в запросе.
- INTERNET_FLAG_IGNORE_CERT_DATE_INVALID - Игнорирует ошибки,
связанные с истекшим сроком действия
сертификата сервера.
Более полная информация по этим флагам
расписана в документации Internet Client SDK.
|