2014-03-26 32 views
1

我們的Dev/QA環境使用自簽名SSL證書,我們正在試用Abcpdf將HTML轉換爲pdf,但HTML呈現的網站在自簽名下運行SSL證書。如何讓Abcpdf使用自簽名證書通過SSL呈現內容

Doc theDoc = new Doc(); 
    theDoc.AddImageUrl("https://mysite/Test"); 
    theDoc.Save(@"c:\tmp\htmlimport.pdf"); 
    theDoc.Clear(); 

導致

WebSupergoo.ABCpdf9.Internal.PDFException : Unable to render HTML. Unable to access URL. 
COM error 800c0019. Security certificate required to access this resource is invalid. 

手動狀態爲TimeStampServiceUrl:

ABCpdf使用System.Net.WebRequest發送時間戳請求。 您可以使用 當您連接到 SSL/TLS通道時,System.Net.ServicePointManager.ServerCertificateValidationCallback到 會自定義信任關係的建立。

但沒有爲AddImageUrl()類似,我反正嘗試和回調從不打:

public class PdfTester 
{ 
    public void Test() 
    { 
     ServicePointManager.ServerCertificateValidationCallback = ServerCertificateValidation; 

     Doc theDoc = new Doc(); 
     theDoc.AddImageUrl("https://mysite/Test"); 
     theDoc.Save(@"c:\tmp\htmlimport.pdf"); 
     theDoc.Clear(); 
    } 


    private static bool ServerCertificateValidation(
     object sender, 
     X509Certificate certificate, 
     X509Chain chain, 
     SslPolicyErrors sslPolicyErrors) 
    { 
     return true; 
    } 
} 

任何想法如何繞過在這種情況下該驗證?

回答

1

試圖通過提琴手運行這個,你可能會遇到引起http://support.microsoft.com/kb/2677070

這個問題導致您可以專注於目標URL,但可能有幾個子請求列出的Windows更新網址症狀這個問題在該知識庫文章中以及向證書中的URL發送請求。我們遇到了這個問題,小提琴手能夠揭示導致800C0019錯誤的502錯誤。

我們通過將fiddler公開的所有URL添加到客戶的例外列表來修復它,但是修復了來自微軟的here

當然,這只是一個可能的解決方案。

+1

我現在重新構建了代碼,以便從HTML字符串構建PDF而不是擊中URL。無論如何感謝您的迴應。 –