Webkitdotnet не может загрузить https сайт

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

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

редактировать: также, как упоминалось в их темах (также без ответа), я получаю ошибку "Не удается проверить подлинность сертификата с помощью известных сертификатов CA" при попытке получить доступ к моему серверу, но https://www.google.com/ работает нормально.

Они также упоминают "яблочную" сборку, которая отлично работала с ssl (по крайней мере, так они говорят), но я нигде не могу ее найти...

3 ответа

Решение

Это что-то вроде хака, но вы можете сделать ошибки webkitdotnet ingore peer ssl. WebKitDotNet использует WebKit, который, в свою очередь, использует curl, который отвечает за вашу замечательную ошибку 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\platform\network\curl\ResourceHandleManager.cpp в строках 65 и 681, в настоящее время.

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

webkitBrowser.Preferences.IgnoreSSLErrors = true;

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

Другие вопросы по тегам