我正在實施一個使用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
嗨音樂錄影帶大獎,它的工作原理!多謝,夥計! –