这有点小技巧,但您可以使 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 行。