这是一个黑客位的,但你可以webkitdotnet则会忽略对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的源代码文件的webkit \来源\的WebCore \平台\网络\卷曲\ ResourceHandleManager.cpp目前在第65和681行。
@therealmitchconnors:非常感谢您的回复(我昨晚在论坛上看到了您的回复),但找不到您正在谈论的引用代码?你能给我链接吗?我的意思是,我下载了0.5版本的src,但它不在那里。也许这不是一个坏主意,让你的修补程序在网络上可用? (由于主开发者放弃了这个项目) – Nikola 2011-06-03 06:28:10
@Nikola:如果你已经下载了WebKitDotNet的0.5版,并且在Visual Studio中打开了WebKit.NET.sln,你应该看到三个项目 - WebKitBrowser,WebKitBrowserTest和WebKitCore。在WebKitBrowserTest中,打开MainForm.cs,并在第48和49行之间插入以下文本。 'Environment.SetEnvironmentVariable(“WEBKIT_IGNORE_SSL_ERRORS”,“1”);' 这应该使此行成为'public MainForm )',在调用'InitializeComponent()'之前。运行该项目,即使证书不正确,您也应该能够导航到该站点。 – therealmitchconnors 2011-06-07 16:44:02
@therealmitchconnors:谢谢你的回复。我照你说的做了,但是当我运行该项目并导航到https://www.google.com时,出现此错误:“SSL对等证书或SSH远程密钥不正常” – Nikola 2011-06-08 07:40:47