我正在实施一个使用C#的GeckoFX浏览器。 我需要导航到安全的自签名证书。但GeckoFX抛出我这个错误。GeckoFX 22通过自签名证书
证书不可信,因为颁发者证书不可信。 证书只适用于FG200B3913601572 (错误代码:sec_error_untrusted_issuer)
我如何绕过检查?
我正在实施一个使用C#的GeckoFX浏览器。 我需要导航到安全的自签名证书。但GeckoFX抛出我这个错误。GeckoFX 22通过自签名证书
证书不可信,因为颁发者证书不可信。 证书只适用于FG200B3913601572 (错误代码:sec_error_untrusted_issuer)
我如何绕过检查?
你可以试试这个代码,但它需要最新版本Geckofx的(从源代码编译):
browser.NSSError += (s,e) => {
CertOverrideService.RememberRecentBadCert(e.Uri);
Uri refUrl = browser.Url;
browser.Navigate(e.Uri.AbsoluteUri, refUrl != null ? refUrl.AbsoluteUri : null);
e.Handled = true;
};
上面的代码不能在29.0.2版本。有一个导致CertOverrideService.RememberRecentBadCert调用错误的错误。
升级到29.0.11后,它工作完美。
这里是VB.NET代码。
Sub IgnoreSSLError(ByVal sender As Object, ByVal e As Gecko.Events.GeckoNSSErrorEventArgs) Handles WebBrowserRehab.NSSError
CertOverrideService.RememberRecentBadCert(e.Uri)
WebBrowserRehab.Navigate(e.Uri.AbsoluteUri)
e.Handled = True
End Sub
我知道它已经有一段时间了,只是想更新,如果有人想在GeckoFx 45中这样做,虽然RememberRecentBadCert现在已经过时了,应该使用RememberValidityOverride 'Function Browser_Error(ByVal sender As Object,e As Gecko.Events。 GeckoNSSErrorEventArgs) 如果e.Message.Contains( “证书”),然后 Gecko.CertOverrideService.GetService()。RememberRecentBadCert(e.Uri,e.SSLStatus) browser.Navigate(e.Uri.AbsoluteUri) e.Handled = True End If End Function' –
应该可能只是将它作为一个单独的答案。我的b。 –
geckoWebBrowser1.NSSError += geckoWebBrowser1_NSSError;
void geckoWebBrowser1_NSSError(object sender, Gecko.Events.GeckoNSSErrorEventArgs e)
{
if (e.Message.Contains("Certificate"))
{
Gecko.CertOverrideService.GetService().RememberRecentBadCert(e.Uri, e.SSLStatus);
geckoWebBrowser1.Navigate(e.Uri.AbsoluteUri);
e.Handled = true;
}
}
尝试在壁虎33
嗨音乐录影带大奖,它的工作原理!多谢,伙计! –