Phantomjs nicht kompatibel TLS1.3



  • Hallo zusammen,
    ich habe das Problem das wenn ich meinen Proxy auf TLSv1.3 schalte funktioniert die PDF Erstellung nicht mehr. Wenn ich auf TLSv1.2 runter drehe funktioniert es.

    Im log von Churchtools steht nur "Error in AbstractModule:call - Could not execute phantomjs, Error code: 1, Error message: Unable to load the address!"

    Ich habe dann in der Datei "system/src/Lib/Pdf/PhantomJsPdfHtmlGenerator.php" einen output für $cmd eingerichtet.

    # Command
    server # /var/www/html/bin/phantomjs system/assets/phantomjs/generatePDF.js 'https://domain.de/sites/default/files/tmp/HWPJ2mhKG9.html' 'sites/default/files/downloader/Printview_Fi5AnzTKd9.pdf' A4 'landscape'
    
    # Debug output
    ...
    2020-11-02T09:00:42 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(SslHandshakeFailedError) ( "SSL handshake failed" ) URL: "https://domain/sites/default/files/tmp/HWPJ2mhKG9.html"
    2020-11-02T09:00:42 [DEBUG] WebPage - updateLoadingProgress: 100
    Unable to load the address!
    ...
    

    Wenn ich das richtig sehe ist nur das Problem, dass er auf https://domain.de/sites/default/files/tmp geht.
    Während der Erstellung wir noch https://domain/system/assets_pdf.css/churchtools-font.css aufgerufen.

    Gibt es dafür schon eine Lösung?

    Gruß Marcel


  • ChurchToolsMitarbeiter

    Wir testen zurzeit Chrome/Chromium als Alternative zu PhantomJS weil der schon länger nicht mehr weiterentwickelt wird.
    Damit das funktioniert muss in der churchtools.config chrome_active=true gesetzt werden und chrome oder chromium installiert werden.

    Wenn der Pfad für Chrome nicht automatisch gefunden wird kann dieser mit dem Parameter chrome_binary angegeben werden.



  • Super vielen dank für die schnelle Antwort. Das werde ich gleich mal testen.



  • Hat super funktioniert. Mir sind nur zwei Dinge aufgefallen.

    1. Ihr sucht standardmäßig nach /usr/bin/chromium-browser, auf meinen Debian basierenden Systemen lautet der Pfad /usr/bin/chromium . Das kann auch über die BinaryPath geändert werden.
    2. Ich musste ein Skript erstellen welches mir /usr/bin/chromium mit der Option "--no-sandbox" startet, da ich sonst immer einen Fehler bekommen habe. Könnte aber auch daran liegen weil ich Churchtools im Container betreibe.
    Additional info: Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
    

    Danke fürs weiter entwickeln.


Log in to reply