【问题标题】:How can I use the Microsoft Internet Transfer Control to access a URL protected by a self-signed certificate?如何使用 Microsoft Internet 传输控制访问受自签名证书保护的 URL?
【发布时间】:2012-11-05 07:22:54
【问题描述】:

我在 VB 6.0 中创建了一个应用程序,用于将 XML 文件发布到 http url 并使用控件 Microsft Internet Transfer Control (MSinet) 读取响应(以 xml 格式)。它在 HTTP 中工作正常。但实时 url 是 HTTPS,我无法使用此控件调用该 URL。

请分享在 VB 6.0 中调用 HTTPS url 的任何替代方式,并分享使用 SSL 认证的方法。

【问题讨论】:

  • 您为什么要绕过 SSL 证书检查?它们对安全很重要——否则你怎么知道你正在与正确的服务器而不是中间人交谈?
  • 在服务器端,我使用的是自签名证书。因此,如果我尝试从客户端访问网页,将会收到 SSL 错误。所以我必须绕过这个错误。
  • @SujithKumar.S 我编辑了您的问题,删除了“绕过”一词。 “绕过”安全不是一个好主意——这会引发安全问题。无论如何,这可能是不可能的。我希望您问的是您的应用程序如何以安全的方式通过 HTTPS 进行通信,以正确的方式参与 SSL 安全步骤
  • 嗨,马克,感谢您的回复。您能否以安全的方式分享用于 https url 调用和 XML 发布的 VB 6.0 代码。而且我还在 C# 和 Vb.net 中找到了一些绕过 SSL 错误的代码,使用该代码我也绕过了 SSL 错误。如果可能的话,你可以在 VB 6.0 中分享相同的代码

标签: https vb6 msinet


【解决方案1】:

基于control's documentation,似乎没有办法更改控件验证 SSL 证书like you can do with a .NET HttpWebRequest. 的方式。因此,您需要将服务器的证书添加到本地计算机的受信任根证书存储中(请参阅What do I need to do to get Internet Explorer 8 to accept a self signed certificate?)。

如果 Internet Explorer 可以在没有证书警告的情况下访问 URL,那么 Microsoft Internet 传输控制也应该能够这样做。这是验证您是否拥有适当信任的证书的好方法。

【讨论】:

  • +1 这是正确的方法 - 不要绕过所有 SSL 安全性,只需将该自签名证书的签名者标记为受信任。
  • WinHTTPRequest 对象提供了一个SetClientCertificate 方法,这可能是.Net 包装以获得类似功能的方法。 ITC 已经很老了,而且发霉了。
  • @Bob77 仅当服务器想要对每个客户端进行唯一身份验证时才会使用客户端证书,这与在服务器上使用自签名证书不同。
猜你喜欢
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多