Webkitdotnet无法加载https站点

时间:2011-04-07 10:28:46

标签: webkit.net

我在我的C#项目中使用此webkitdotnet。一切顺利,直到我不得不使用https访问站点。

我搜索了他们的论坛,发现few posts关于此问题,但没有一个能解决我的问题,所以请详细说明一下。 THX!

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

他们还提到了“苹果”版本,它与ssl配合得很好(至少他们说是这样),但我无法在任何地方找到它......

3 个答案:

答案 0 :(得分:6)

这有点像黑客,但你可以使webkitdotnet ingore peer ssl错误。 WebKitDotNet使用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源代码目前位于第65和681行的webkit \ Source \ WebCore \ platform \ network \ curl \ ResourceHandleManager.cpp文件中。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

webkitBrowser.Preferences.IgnoreSSLErrors = true;