2011-04-07 2 views
3

Я использую этот webkitdotnet в моем проекте C#. Все прошло хорошо, пока мне не пришлось использовать сайт доступа с https.Webkitdotnet не может загрузить сайт https

Я искал их форум и нашел few posts об этом, но ничто из этого не решает мою проблему, поэтому, пожалуйста, пролите свет на этот. Спасибо!

Редактировать: Также, как упоминалось в их потоках (также без ответа), при попытке доступа к моему серверу я получаю сообщение «Неверный сертификат не может быть аутентифицирован с известными сертификатами ЦС», но https://www.google.com работает нормально.

Они также упомянуть «яблоко» построить который работал хорошо с SSL (по крайней мере, так они говорят), но я не могу найти его в любом месте ...

ответ

6

Это немного взломанный, но вы можете сделать webkitdotnet ingor peer ssl errors. WebKitDotNet использует WebKit, который, в свою очередь, использует завиток, который отвечает за вашу замечательную ошибку ssl. curl предоставляет возможность игнорировать ошибки ssl, но ни webkit, ни webkitdotnet, похоже, не раскрывают эту функциональность в своих api. Однако, если вы проверяете исходный код webkit, webkit устанавливает параметр curl (CURLOPT_SSL_VERIFYPEER) в значение false, если для значения переменной среды WEBKIT_IGNORE_SSL_ERRORS установлено значение true.

Что все это сводится к тому, что если вы установите переменные окружения в коде перед инициализацией либо WebKit или webkitdotnet компоненты, WebKit будет игнорировать плохой сертификат и позволит вам перейти на сайте (вроде нажатия кнопки Приступить В любом случае на странице предупреждения плохого сертификата IE9).

C++:

setvar("WEBKIT_IGNORE_SSL_ERRORS", "1"); 

C#:

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

Если кому-то интересно, источник WebKit код ссылки в файле WebKit \ Source \ WebCore \ платформа \ сеть \ локон \ ResourceHandleManager.cpp на линиях 65 и 681, в настоящее время.

+0

@therealmitchconnors: Благодарю вас за ответ (я видел ваш ответ на форуме вчера вечером), но я не могу найти ссылочный код, о котором вы говорите? Можете ли вы дать мне ссылку? Я имею в виду, я загрузил src версии 0.5, и его нет. Может быть, неплохо было бы сделать ваше исправление доступным в сети? (Поскольку основной разработчик отказался от проекта) – Nikola

+0

@Nikola: если вы загрузили версию 0.5 WebKitDotNet и открыли WebKit.NET.sln в visual studio, вы должны увидеть три проекта - WebKitBrowser, WebKitBrowserTest и WebKitCore. В WebKitBrowserTest откройте MainForm.cs и вставьте следующий текст между строками 48 и 49. 'Environment.SetEnvironmentVariable (« WEBKIT_IGNORE_SSL_ERRORS »,« 1 »);' Это должно сделать эту строку первой инструкцией под 'public MainForm () 'перед вызовом' InitializeComponent() '. Запустите проект, и вы сможете перейти на сайт, даже с плохим сертификатом. – therealmitchconnors

+0

@therealmitchconnors: Спасибо за ваш ответ. Я сделал, как вы сказали, но когда я запустил проект и перешел на https://www.google.com, я получаю эту ошибку: «SSL-сертификат peer или удаленный ключ SSH не был в порядке» – Nikola

0

После долгих прибегая к помощи я, наконец, в конечном итоге купил SSL сертификат для моего домена, и теперь все в порядке. Кроме того, следует отметить, что Webkit проще всего работать с DOM-доступом и манипулировать ими.

0

Я пробовал код ниже и работает для меня.

webkitBrowser.Preferences.IgnoreSSLErrors = true; 
Смежные вопросы