C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Как сделать SSL запрос / Общие вопросы / Сеть

Как сделать 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.