你目前正处于脱机状态,正在等待 Internet 重新连接

如何使用 WinInet 进行 SSL 请求

不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
概要
本文说明如何使用 WinInet API 发出 SSL 请求。
更多信息
使用 WinInet API 可以建立安全套接字层 (SSL) 或专用通信技术 (PCT) HTTP 会话。安全 HTTP(表示为 HTTPS://)在 TCP 端口 443 上发生。可以使用类似于下面这样的代码来建立 HTTPS 会话:
   ...   hOpen = InternetOpen (...);   Connect = InternetConnect (                hOpen,                      // InternetOpen handle                "MyHttpServer",             // Server  name      INTERNET_DEFAULT_HTTPS_PORT,// Default HTTPS port - 443                "",                         // User name                "",                         //  User password                INTERNET_SERVICE_HTTP,      // Service      0,                          // Flags      0                           // Context                   );   hReq = HttpOpenRequest (                hConnect,                   // InternetConnect handle      "GET",                      // Method      "",                         // Object name      HTTP_VERSION,               // Version      "",                         // Referrer                NULL,                       // Extra headers      INTERNET_FLAG_SECURE,       // Flags      0                           // Context                );   ...				
使用 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 文档。

SSL 和 PCT 功能是由 Schannel.dll 提供的,它在您运行再发布程序 Wintdist.exe 或 Wint351.exe 时会正确安装。有关再发布 Schannel.dll 的信息,请参阅 Redist.txt 或 Axredist.txt。
参考
Internet Client SDK 帮助
属性

文章 ID:168151 - 上次审阅时间:03/25/2004 08:43:42 - 修订版本: 1.2

  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Windows Internet Services (WinInet)
  • kbhowto KB168151
反馈