• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting IPv6 Finamp -> NGINX -> Jellyfin -> CERTIFICATE_VERIFY_FAILED

     
    • 0 Vote(s) - 0 Average

    IPv6 Finamp -> NGINX -> Jellyfin -> CERTIFICATE_VERIFY_FAILED

    Finamp cannot establish an HTTPS connection. Stock, Desktop, and Web apps work fine.
    pixel24
    Offline

    Member

    Posts: 196
    Threads: 56
    Joined: 2023 Aug
    Reputation: 1
    Country:Germany
    #1
    2024-06-28, 11:19 AM
    Hi@all,

    I have a problem that has been bothering me for a while. We have an IPv6-only connection from Vodafone. Internally, I have set up a dual-stack network. All server VMs have a public IPv6 address. On the pfSense, I have allowed HTTP connections to hosts (Groupware, Nextcloud, Jellyfin, etc.).

    All servers have valid SSL certificates from Let's Encrypt. All applications work externally (mobile network / IPv6). The only thing I can't get to work is Finamp. The Stock app (Android/iOS), the desktop app, and even the web browser have no problem accessing externally via HTTPS.
    Do I need to make adjustments to NGINX for Finamp to work, or is there possibly a mistake here? Here is my NGINX configuration:


    Code:
    server {
        listen 80;
        listen [::]:80;
        server_name media02.lan.example.de;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name media02.lan.example.de;

        client_max_body_size 50M;

        set $jellyfin media02.lan.example.de;
        resolver 192.168.83.5 valid=30s;

        ssl_certificate /etc/ssl/media02.lan.example.de.crt;
        ssl_certificate_key /etc/ssl/media02.lan.example.de.key; # managed by Certbot
        include /etc/nginx/snippets/options-ssl-nginx.conf;
        ssl_dhparam /etc/ssl/ssl-dhparams.pem;
        add_header Strict-Transport-Security "max-age=31536000" always;
        ssl_trusted_certificate /etc/ssl/media02.lan.example.de.fullchain;
        ssl_stapling on;
        ssl_stapling_verify on;

        # Logging
        error_log /var/log/nginx/error.log debug;

        # Security / XSS Mitigation Headers
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";

        # CORS Headers
        add_header 'Access-Control-Allow-Origin' '*' always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
        add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;

        # COOP/COEP. Disable if you use external plugins/images/assets
        add_header Cross-Origin-Opener-Policy "same-origin" always;
        add_header Cross-Origin-Embedder-Policy "require-corp" always;
        add_header Cross-Origin-Resource-Policy "same-origin" always;

        # Permissions policy. May cause issues on some clients
        add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()" always;

        location = / {
            return 302 https://$host/web/;
        }

        location / {
            # Proxy main Jellyfin traffic
            proxy_pass http://$jellyfin:8096;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Protocol $scheme;
            proxy_set_header X-Forwarded-Host $http_host;

            # Disable buffering when the nginx proxy gets very resource heavy upon streaming
            proxy_buffering off;
        }

        location /socket {
            # Proxy Jellyfin Websockets traffic
            proxy_pass http://$jellyfin:8096;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Protocol $scheme;
            proxy_set_header X-Forwarded-Host $http_host;
        }
    }


    Code:
    cat /etc/nginx/snippets/options-ssl-nginx.conf
    # This file contains important security parameters. If you modify this file
    # manually, Certbot will be unable to automatically provide future security
    # updates. Instead, Certbot will print and log an error message with a path to
    # the up-to-date file that you will need to refer to when manually updating
    # this file. Contents are based on https://ssl-config.mozilla.org

    ssl_session_cache shared:le_nginx_SSL:10m;
    ssl_session_timeout 1440m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;

    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";

    Finamp freshly installed and set the server to:
    https://media02.lan.example.de
    It tries to connect for a while but cannot find or display the server. In the Finamp log, I find:


    Code:
    [Startup/INFO] 2024-06-28 12:57:42.826639: App starting, logging initialized.
    [MusicPlayerBackgroundTask/INFO] 2024-06-28 12:57:43.251575: Starting audio service
    [QueueService/FINE] 2024-06-28 12:57:43.252342: Loop mode set to FinampLoopMode.none
    [QueueService/INFO] 2024-06-28 12:57:43.252418: Restored loop mode to FinampLoopMode.none from settings
    [QueueService/FINE] 2024-06-28 12:57:43.252501: Playback speed set to 1.0
    [QueueService/INFO] 2024-06-28 12:57:43.252542: Restored playback speed to 1.0 from settings
    [MusicPlayerBackgroundTask/INFO] 2024-06-28 12:57:43.254638: Shuffle mode changed to AudioServiceShuffleMode.none (false).
    [MusicPlayerBackgroundTask/INFO] 2024-06-28 12:57:43.254741: Loop mode changed to AudioServiceRepeatMode.none (LoopMode.off).
    [MusicPlayerBackgroundTask/INFO] 2024-06-28 12:57:43.255522: Loop mode changed to AudioServiceRepeatMode.none (LoopMode.off).
    [MusicPlayerBackgroundTask/INFO] 2024-06-28 12:57:43.323392: Queue completed.
    [PlaybackHistoryService/INFO] 2024-06-28 12:57:43.324324: Handling playback stop event
    [SyncBuffer/INFO] 2024-06-28 12:57:48.247833: All syncs complete.
    [DeleteBuffer/INFO] 2024-06-28 12:57:48.248293: All deletes complete.
    [IsarTaskQueue/INFO] 2024-06-28 12:57:48.248465: All downloads enqueued.
    [JellyfinServerClientDiscovery/FINE] 2024-06-28 12:58:09.934833: Sending discovery messages
    [LoginServerState/SEVERE] 2024-06-28 12:58:16.964650: Error loading server info: HandshakeException: Handshake error in client (OS Error:
    CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:393))
    [LoginServerState/SEVERE] 2024-06-28 12:58:26.968426: Error loading server info: ClientException with SocketException: HTTP connection timed out after 0:00:10.000000, host: TEMP_HOST, port: 8096, uri=TEMP_BASEURL/System/Info/Public


    Code:
    oginServerState/SEVERE] 2024-06-28 12:59:31.233273: Error loading server info: ClientException with SocketException: HTTP connection timed out after 0:00:10.000000, host: TEMP_HOST, port: 8096, uri=TEMP_BASEURL/System/Info/Public

    As mentioned, all other Jellyfin clients work over HTTPS. Does anyone have any ideas for me?

    with best
    pixel24
    Offline

    Member

    Posts: 196
    Threads: 56
    Joined: 2023 Aug
    Reputation: 1
    Country:Germany
    #2
    2024-06-28, 11:33 AM
    Code:
    openssl x509 -in /etc/ssl/media02.lan.example.de.crt -text -noout

    show me the correct certificate
    pixel24
    Offline

    Member

    Posts: 196
    Threads: 56
    Joined: 2023 Aug
    Reputation: 1
    Country:Germany
    #3
    2024-06-28, 12:48 PM
    Shame on me! I didn't set the tag:
    server {
    ...
    }
    correctly, and it was included twice. Now it seems to be working. Why the Stock App, Desk client, and web browser still worked with this issue is a mystery to me. The main thing is that I finally found the error :-)
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode