Certificate Error when Streaming Media from the iOS App

Hi, all. I am running OwnCloud as storage from within my home network – behind a firewall, isolated from the internet. The web interface is working great, but I’m having trouble streaming from the iOS app. When I try, I get the message “Error: The certificate for this server is invalid.”

I suspect this is because I’m using a self-signed certificate. However, I don’t have a domain registered and the server is isolated from the internet, so I don’t see how I could get a validated certificate through something like letsencrypt. I have installed the self-signed certificate to my iPhone and marked it as trusted.

I generated the certificate with the command:

sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

I just used the server’s name as the FQDN.

So is there a way for me to use the app to stream media?

Server configuration

Hardware: Raspberry Pi 3 B+

OS: Raspberry Pi OS Bullseye 5.15.32-v7+

Web server: nginx/1.18.0

Database: MariaDB 10.5.15-MariaDB-0+deb11u1 Raspbian 11

PHP version: PHP 7.4.28

ownCloud version: 10.9.1

Storage backend (external storage): USB hard disk, ext4 formatted

Client

iOS version: 15.4.1

ownCloud app version: 11.9.1 build 213

Device model: iPhone 11 Pro

Logs

Web server error log (obfuscated)

[iPhone IP Address] - [username] [03/May/2022:00:08:32 -0400] "PROPFIND /remote.php/dav/files/[username]/ HTTP/2.0" 207 929 "-" "ownCloudApp/11.9.1 (ownCloud/213; iOS/15.4.1; iPhone)"
[iPhone IP Address] - [username] [03/May/2022:00:08:43 -0400] "PROPFIND /remote.php/dav/files/[username]/ HTTP/2.0" 207 929 "-" "ownCloudApp/11.9.1 (ownCloud/213; iOS/15.4.1; iPhone)"
[iPhone IP Address] - [username] [03/May/2022:00:08:54 -0400] "PROPFIND /remote.php/dav/files/[username]/ HTTP/2.0" 207 929 "-" "ownCloudApp/11.9.1 (ownCloud/213; iOS/15.4.1; iPhone)"

ownCloud log (data/owncloud.log) (obfuscated)

{"reqId":"eu8R5aJookJeBcrWjrFh","level":2,"time":"2022-05-03T03:41:50+00:00","remoteAddr":"[iPhone IP Address]","user":"--","app":"core","method":"GET","url":"\/","message":"Trusted domain error. \"[iPhone IP Address]\" tried to access using \"[Owncloud Address]\" as host."}
{"reqId":"BQqp3zrar2bkrp0tgcnb","level":2,"time":"2022-05-03T03:41:50+00:00","remoteAddr":"[iPhone IP Address]","user":"--","app":"core","method":"GET","url":"\/core\/js\/oc.js?v=81fabad129f02187234437ab53995f21","message":"Trusted domain error. \"[iPhone IP Address]\" tried to access using \"[Owncloud Address]\" as host."}
{"reqId":"NqOfpTFBokwINs6T9Rzi","level":2,"time":"2022-05-03T03:42:38+00:00","remoteAddr":"[iPhone IP Address]","user":"--","app":"core","method":"GET","url":"\/","message":"Trusted domain error. \"[iPhone IP Address]\" tried to access using \"[Owncloud Address]\" as host."}

I fixed this problem by switching from Owncloud to Nextcloud. The iOS app has no problems with self-signed certificates. I hope this helps others!