3

我在我的 C# 项目中使用这个webkitdotnet 。一切都很顺利,直到我不得不使用带有 https 的访问站点。

我搜索了他们的论坛,发现很少有关于这个的帖子,但没有一个能解决我的问题,所以请对这个问题有所了解。谢谢!

编辑:同样在他们的线程中提到(也没有答案)我在尝试访问我的服务器时收到“无法使用已知 CA 证书对对等证书进行身份验证”错误,但https://www.google.com工作正常。

他们还提到了与 ssl 配合良好的“苹果”构建(至少他们是这么说的),但我在任何地方都找不到它......

4

3 回答 3

6

这有点小技巧,但您可以使 webkitdotnet ingore peer ssl 错误。WebKitDotNet 使用 WebKit,而 WebKit 又使用 curl,这对那里的奇妙 ssl 错误负责。curl 公开了一个忽略 ssl 错误的选项,但是 webkit 和 webkitdotnet 似乎都没有在他们的 api 中公开这个功能。但是,如果您检出 webkit 源代码,如果环境变量 WEBKIT_IGNORE_SSL_ERRORS 的值设置为 true,webkit 会将 curl 选项 (CURLOPT_SSL_VERIFYPEER) 设置为 false。

这一切归结为,如果您在初始化 webkit 或 webkitdotnet 组件之前在代码中设置环境变量,webkit 将忽略错误证书并允许您导航到该站点(有点像在 IE9 的错误证书警告上单击继续页)。

C++:

setvar("WEBKIT_IGNORE_SSL_ERRORS", "1");

C#:

Environment.SetEnvironmentVariable("WEBKIT_IGNORE_SSL_ERRORS", "1");

如果有人感兴趣,参考的 webkit 源代码目前位于文件 webkit\Source\WebCore\platform\network\curl\ResourceHandleManager.cpp 的第 65 行和第 681 行。

于 2011-06-02T22:25:29.713 回答
0

经过长时间的谷歌搜索,我最终为我的域购买了 SSL 证书,现在一切都很好。另外,需要注意的是,Webkit 是最容易使用的,并且允许 DOM 访问和操作。

于 2011-04-22T11:44:04.723 回答
0

我尝试了下面的代码并为我工作。

webkitBrowser.Preferences.IgnoreSSLErrors = true;
于 2014-02-07T09:51:07.647 回答