Как получить Abcpdf для визуализации контента через SSL с самоподписанным сертификатом

В наших средах 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;
    }
}

Любые идеи, как обойти эту проверку в этом сценарии?

1 ответ

Попробуйте запустить это через fiddler, возможно, вы столкнулись с этой проблемой, вызванной http://support.microsoft.com/kb/2677070

Симптомы этой проблемы заставляют вас сосредоточиться на целевом URL-адресе, но может быть несколько вложенных запросов к URL-адресам обновления Windows, перечисленным в этой статье базы знаний, а также к URL-адресу в сертификате. У нас была эта проблема, и Fiddler смог выявить ошибки 502 по пути, который привел к ошибке 800C0019.

Мы исправили это, добавив все URL-адреса, предоставляемые fiddler, в список исключений клиента, но здесь есть исправление от Microsoft.

Конечно, это только возможное решение.

Другие вопросы по тегам