В наших средах 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 для настройки установления доверительных отношений при подключении к каналу 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;
}
}
Любые идеи, как обойти эту проверку в этом сценарии?