Solved this today. Took me several hours on a Sunday evening. Like I had nothing better to do, thank you Apple for that. I wish you would let people connect to their LAN however they want but no, SSL it must be (with all professional-level requirements that is).
My issue: because of new TLS certificate requirements in IOS 13 (https://support.apple.com/en-us/HT210176), my old self-signed certificate was no longer compliant (more than 825 days, no EKU, no SAN).
So, no way around this but to hit the command prompt with openssl.
Turns out you need quite some research to make sure you can enter the EKU and SAN properly.
Here the procedure for those in the #selfhosted community which may be pulling their hairs at the moment:
- Create an openssl config file - See in "Additional text" the contents of mine (do change values where applicable)
- Generate a new certificate:
sudo openssl req -config server-selfsigned-CA.cnf -new -x509 -out server-selfsigned-CA.crt
- Check the certificate results via
openssl x509 -in server-selfsigned-CA.crt -text -noout
- Import the new self-signed certificate into IOS via (e.g.) download on self-hosted page
- copy the server-selfsigned-CA.crt file into your http server and rename the extention as .cer
- create an html file in your web server pointing to the server-selfsigned-CA.cer file
- point your iOS devices to your server (using http, not https) and newly created html file, then download the CER file and click on Install
- then go to iOS settings / general / profiles and install the newly downloaded profile
- then go to settings / general / about / scroll down to "certificate trust settings" and enable your newly certificate
- replace the new certificates in your apache config file
use the crt file for SSLCertificateFile
use the .key file for SSLCertificateKeyFile
(think about creating a "dhparam" file and making it available on the same file, e.g. SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem")
- restart apache
- test your connection