我们的Dev / QA环境使用自签名ssl证书,我们正在试用Abcpdf将html转换为pdf,但呈现html的站点是在自签名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发送时间戳请求。 您可以使用 System.Net.ServicePointManager.ServerCertificateValidationCallback to 连接到一个时,自定义信任关系建立 SSL / TLS频道。
但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;
}
}
在这种情况下如何绕过此验证的任何想法?
答案 0 :(得分:1)
尝试通过fiddler运行此操作,您可能会遇到由http://support.microsoft.com/kb/2677070
引起的此问题此问题的症状会导致您专注于目标网址,但可能会对该知识库文章中列出的Windows更新网址以及对证书中的网址的请求提出多个子请求。我们遇到了这个问题,fiddler能够在导致800C0019错误的路上暴露502错误。
我们通过将fiddler公开的所有网址添加到客户的例外列表中来解决此问题,但Microsoft已修复了here。
当然这只是一种可能的决议。