Delphi - TWebBrowser中的证书错误,IE9中没有错误

时间:2014-02-13 13:13:42

标签: delphi certificate twebbrowser

几年前,我写了一个Delphi应用程序,它在TWebBrowser中打开了一个内部网站点。该应用程序在Windows XP SP3上运行正常,但在Windows 7上,TWebBrowser显示IE8样式的红色证书错误页面。此外,点击“继续浏览此网站”不会打开该页面。有趣的是,当我在Windows XP上的IE8或Windows 7上的IE9中打开页面时,它会成功打开,浏览器报告没有证书错误。

是否可以以消除证书错误页面的方式配置TWebBrowser或应用程序或Windows本身?

我尝试在管理员模式下运行应用程序,有和没有Windows XP兼容模式。我已将页面证书安装到每个合理的证书库中。我使用IE的安全设置和注册表中的Internet Explorer FeatureControl设置。这些都没有帮助。

1 个答案:

答案 0 :(得分:4)

(在David Heffernan的评论之后,我重写了我的答案。)

<强> 1。解决方法

在“Internet选项\高级\安全”中关闭“检查服务器certificate revocation”消除了TWebBrowser中的证书错误页面。请注意,关闭撤销检查会打开安全漏洞(感谢David Heffernan在评论中强调这一点)。

Certificate Revocation Checkbox

<强> 2。 Windows XP和7之间的区别

不同的行为是由于this option is turned off on Windows XP by default,但在Windows 7上它已经打开了。奇怪的是,在不同的操作系统版本上,此安全设置的处理方式不同。应该修补Windows XP以默认启用此设置。

第3。证书问题

当启用吊销检查时,IE会报告该网站的证书没有问题,并且证书链中的每个证书都可以。这是误导性的,因为如果Internet Explorer功能控件FEATURE_WARN_ON_SEC_CERT_REV_FAILED也打开,IE会显示一个证书警告,上面写着“Internet Explorer无法联系发卡行以确保证书未被撤销”。

Certificate Issuer Unreachable

<强> 4。静音模式的影响

当启用吊销检查,并且无法联系到发卡行时,TWebBrowser shows a Security Alert popup的文本“此网站的安全证书的撤销信息不可用。您要继续吗? “不幸的是,当TWebBrowser.Silent属性为True时,提示被禁止并自动选择“否”。在我的情况下,启用了静默模式,因为我想隐藏页面的JavaScript错误,因此TWebBrowser直接跳转到证书错误页面,并且不让我继续。

Revocation Information Unavailable

<强> 5。解决方案

启用撤销检查可以避免安全漏洞,但在这种情况下TWebBrowser.Silent必须是False,并且用户必须手动关闭每个弹出窗口(在上面的安全警报弹出窗口中)是“必须单击”。由于我的应用程序自动使用该网站(基于用PascalScript编写的代码),它必须关闭每个弹出窗口(此功能已经实现了确认弹出窗口)。