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
-
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.configchrome_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.
- 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.
- 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.
-
Wie du richtig schreibst liegt es an der SSL/TLS Version. Für self-hoster gibt es eine einfache Abhilfe mit einem Skript. Dazu muss phantomjs z.b. zu phantomjs.bin umbenannt werden. Die phantomjs Datei beinhaltet dann:
path/to/web/churchtools/bin# cat phantomjs
#!/bin/bash
/path/to/churchtools/bin/phantomjs.bin --ignore-ssl-errors=yes "$@"
path/to/web/churchtools/bin#Dann funktioniert es auch mit dem "alten" phantomjs.
Lieber Gruss
Fritz