Certificate could not be verified
error.
Can’t play music or video over HTTPS and VLC output looks similar?
[0x83916dc] gnutls tls client error: TLS session: access denied [0x83916dc] gnutls tls client error: Certificate could not be verified [0x83916dc] gnutls tls client error: Certificate's signer was not found [0x83916dc] main tls client error: TLS client session handshake error
System certificates
Update /etc/ssl/certs and ca-certificates.crt file.
$ sudo update-ca-certificates --fresh --verbose
VLC certificates
Feed VLC with certificates shipped with Mozilla browser.
$ mkdir -p ~/.local/share/vlc/certs/
$ cat /usr/share/ca-certificates/mozilla/* | tee ~/.local/share/vlc/certs/ca-certifcates.crt
stunnel
Use stunnel
proxy in client mode if nothing else help.
$ sudo apt-get install stunnel
$ cat << EOF | tee ~/stunnel.conf client = yes foreground = yes
[proxy]
accept = 127.0.0.1:11234 connect = example.org:443 EOF
$ sudo stunnel stunnel.conf
2017.10.22 04:59:33 LOG5[ui]: stunnel 5.39 on x86_64-pc-linux-gnu platform 2017.10.22 04:59:33 LOG5[ui]: Compiled with OpenSSL 1.1.0c 10 Nov 2016 2017.10.22 04:59:33 LOG5[ui]: Running with OpenSSL 1.1.0f 25 May 2017 2017.10.22 04:59:33 LOG5[ui]: Update OpenSSL shared libraries or rebuild stunnel 2017.10.22 04:59:33 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6,SYSTEMD TLS:ENGINE,FIPS,OCSP,PSK,SNI Auth:LIBWRAP 2017.10.22 04:59:33 LOG5[ui]: Reading configuration from file /home/milosz/stunnel.conf 2017.10.22 04:59:33 LOG5[ui]: UTF-8 byte order mark not detected 2017.10.22 04:59:33 LOG5[ui]: FIPS mode disabled 2017.10.22 04:59:33 LOG4[ui]: Service [proxy] needs authentication to prevent MITM attacks 2017.10.22 04:59:33 LOG5[ui]: Configuration successful 2017.10.22 04:59:43 LOG5[0]: Service [proxy] accepted connection from 127.0.0.1:40398 2017.10.22 04:59:43 LOG5[0]: s_connect: connected 93.184.216.34:443 2017.10.22 04:59:43 LOG5[0]: Service [proxy] connected remote server from 192.168.1.112:57022 2017.10.22 04:59:44 LOG5[0]: Connection closed: 80 byte(s) sent to TLS, 478 byte(s) sent to socket ...
Use the local port to access remote service.
$ curl http://localhost:11234/