我在我的C#项目中使用此webkitdotnet。一切顺利,直到我不得不使用https访问站点。
我搜索了他们的论坛,发现few posts关于此问题,但没有一个能解决我的问题,所以请详细说明一下。 THX!
编辑:另外正如他们的线程中提到的那样(也没有答案)我在尝试访问我的服务器时得到“无法通过已知CA证书进行身份验证的对等证书”错误,但https://www.google.com工作正常。
他们还提到了“苹果”版本,它与ssl配合得很好(至少他们说是这样),但我无法在任何地方找到它......
答案 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;