Hi there!
Since updating to Tasker 5.2*, user CA certificates (i.e. CA certificates that have been manually added to the system and appear under system settings -> security (exact location varies) -> view security certificates -> user) are no longer honored when using the "HTTP <method>" network actions or XMLHttpRequest inside a JavaScript(let) action.
More details:
https requests using a certificate that's signed with a CA certificate that only exists in the user CA store behave as if the CA isn't found at all (the same behavior you'd expect for a self-signed certificate); for example, the error log from an "HTTP GET" action:
19.10.10/E prot: https:// serverport: <hostname>:443 contenttype:
19.10.10/E method: GET url: https://<hostname>:443/foo timout: 10000 dataisfile false save null
19.10.10/WakeLockManager acquired partial lock for M flags: 1 autorelease: true warn: true
19.10.10/WakeLockManager setClearAlarm: not setting, last set 31ms ago
19.10.10/WakeLockManager setClearAlarm: not setting, last set 54ms ago
19.10.10/E body isfile: false cont: null
19.10.11/E Input/Output error for https://<hostname>:443/foo: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found..
19.10.11/E result: stop task (error)
19.10.11/E Error: 1
19.10.11/MacroEdit action finished exeID 1 action no 0 code 118 status: Err next 0
I could, of course, use the "Trust Any Certificate" option -- but this is insecure and doesn't help for the Javascript actions which are my primary use case.
Device: Samsung Galaxy S8 (stock OS)
Build fingerprint: 'samsung/dreamqlteue/dreamqlteue:8.0.0/R16NW/G950U1UES5CRF5:user/release-keys'
Tasker version: 5.2.bf1
* I'm not 100% sure this happened with 5.2, but that version makes the most sense based on the changelog and time of my last successful connection. Incidentally, a variable with the Tasker version would be handy so that I can log it on the server side. :)
Cheers,
--
Ben