We recently upgraded our web server from Ubuntu 16.04 to Ubuntu 24.04 and the version of Nginx that came with them at the time.
We have a hundred remote devices that can not connect to the new web server since the upgrade. They are all Android 4. It seems Android 4 and modern OpenSSL are not compatible.
The current OkHttp library requires Android 5 but I managed to get the older OkHttp library files from B4A 11.2 which runs on Android 4. I can now at least make a HTTP connection. But HTTPS still gives an error, the remote sites report: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate. My test device at my office reports: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL Handshake aborted.
The web server certificate is correct and passes online test. It contains the domain, intermediary and root certificates, in that order.
I've tried the Build Configuration Conditional Symbol: HU2_ACCEPTALL and got the same error.
Is it possible to get HTTPS working again?
I've read suggestions like:
1. Embed the server certificate in the app - is there an example of how to do that?
2. Use a reverse proxy server to relay device HTTP to server HTTPS and in reverse. Adds more complexity.
3. Open port 80 on the web server and firewall and update the app to use HTTP - our network team will be unhappy about that.