Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android App Rejects Let's Encrypt Chain on TURNS Connection #5589

Closed
rfrederick opened this issue Apr 2, 2020 · 15 comments
Closed

Android App Rejects Let's Encrypt Chain on TURNS Connection #5589

rfrederick opened this issue Apr 2, 2020 · 15 comments
Labels
android Issue related to the Android operating system confirmed Confirmed bug, should not go stale mobile Issue related to any mobile system running Jitsi Meet

Comments

@rfrederick
Copy link

Description


When the Jitsi Meet Android app attempts to connect via TURNS to a TURN server containing a Let's Encrypt certificate chain the app rejects the chain with a reason of "Unknown CA" in the Fatal TLS Alert packet. The same chain is accepted by Chrome and Firefox.

Current behavior


Android app rejects the chain of a Let's Encrypt server certificate and the "Let's Encrypt Authority X3" certificate (as generated by the "install-letsencrypt-cert.sh" script) when connecting to a TURN server via TURNS.

Expected Behavior


Android App would accept the Let's Encrypt certificate chain offered by the TURN server.

Possible Solution


Steps to reproduce


  • Install Jitsi Meet on Ubuntu 18.04 per the quick install guide
  • Generate a Let's Encrypt certificate using the "install-letsencrypt-cert.sh" script
  • Attempt to join an existing multiparty conference with the Android app on a device behind a NAT

Environment details


New Jitsi Meet install using the quick install guide on an Ubuntu 18.04 system with a public IP address

@faenil
Copy link

faenil commented Apr 13, 2020

Same issue here on a slightly modified Jitsi Meet quick install on Ubuntu 20.04 devel.

The calls videocalls work fine on Firefox Android or Chrome Android using the Desktop user agent.

However, using the Android Jitsi app is a no-go, the TLS connection to the TURNs server cannot be established and the packets dump shows a TLS Fatal Alert with message "Unknown CA".

@localguru
Copy link

localguru commented Apr 29, 2020

Same here with coturn 4.5.1.1-1.1build2 on Ubuntu 20.04 LTS. cert= contains the full chain, including the RootCA (CN=T-TeleSec GlobalRoot Class 2).

@plokta
Copy link
Contributor

plokta commented May 22, 2020

Please see my comment in the related issue: #6383 (comment)

Should probably have posted it here instead, since this issue is more specific to LetsEncrypt but missed it in my search. Sorry for the confusion.

@luixxiul luixxiul added the android Issue related to the Android operating system label May 22, 2020
@Echolon Echolon added mobile Issue related to any mobile system running Jitsi Meet api Issue related to the external API (iframe) labels May 22, 2020
@luixxiul luixxiul removed the api Issue related to the external API (iframe) label May 25, 2020
@ldruschk
Copy link

This issue isn't limited to the Android client, I am noticing the same behavior with the iOS client (Version 20.2.3 build 73 on iOS 13.5.0). Looking at Wireshark, the connection is closed with an "Unknown CA" alert message.

@stale
Copy link

stale bot commented Sep 17, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix Issue won't be fixed label Sep 17, 2020
@karlskewes
Copy link

I wonder if this is all related to this issue in Chromium's libwebrtc stack - https://bugs.chromium.org/p/webrtc/issues/detail?id=11710
TLDR; a limited subset of Root CA's are supported (as required for Google services but not the world).

@stale stale bot removed the wontfix Issue won't be fixed label Sep 24, 2020
@saghul
Copy link
Member

saghul commented Sep 24, 2020

Right on the money.

@saghul
Copy link
Member

saghul commented Sep 24, 2020

FTR, we are going to replace the cert bundle that WebRTC ships with. Not a big deal, but it needs to be done.

@stale
Copy link

stale bot commented Dec 25, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix Issue won't be fixed label Dec 25, 2020
@faenil
Copy link

faenil commented Dec 25, 2020

Don't kill it, bot. It's Christmas! :) 🎄

@stale stale bot removed the wontfix Issue won't be fixed label Dec 25, 2020
@SirCypher
Copy link

(I copied my comment from coturn/coturn#240 , in case you're interested.)

While we all wait for an official change/fix there is a sort-of workaround:
Use ZeroSSL instead of LetsEncrypt.

ZeroSSL certificates are signed by a certificate which is also in the webkit CA store. The Element app on Android is now working properly with coturn and TLS on my private server. No more "Unknown CA" error in Wireshark. :)
ZeroSSL is also supported by quiet a few acme clients, so the switch really isn't too hard.

@mrPjer
Copy link

mrPjer commented Apr 14, 2021

Thank you for your comment, SirCypher. I experienced the same, and I couldn't figure out why turns wasn't working. Switching the certificate to a ZeroSSL one worked.

@saghul saghul added the confirmed Confirmed bug, should not go stale label Apr 15, 2021
@equetzal
Copy link

I have the same problem but with ZeroSSL certificate. Android app just keeps aborting connection :/

@ahabiba
Copy link

ahabiba commented Jun 14, 2021

@equetzal you need to creat full chain our of your zerossl certificate as below:

cat zero/certificate.crt zero/ca_bundle.crt > fullchain.pem

in addition you need to be sure that your coturn certificate is the same as your Nginx certificate

nirgal added a commit to nirgal/synapse that referenced this issue Jul 9, 2021
Connections from android to a turn server with letsencrypt certificates fail with error:
TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Unknown CA)

This is the same issue than jitsi/jitsi-meet#5589

This remark will hopefully save some trouble to other people.
@saghul
Copy link
Member

saghul commented Mar 2, 2022

Please see #6383 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android Issue related to the Android operating system confirmed Confirmed bug, should not go stale mobile Issue related to any mobile system running Jitsi Meet
Projects
None yet
Development

No branches or pull requests