Skip to content

Fix/federation ca file - #70

Open
z-dule wants to merge 2 commits into
devfrom
fix/federation-ca-file
Open

z-dule wants to merge 2 commits into
devfrom
fix/federation-ca-file

Conversation

@z-dule

@z-dule z-dule commented Nov 6, 2026

Copy link
Copy Markdown

This PR de-couples the federation CA-file fom the global CA-file that is used for TURNS TLS connections.

Dusan Stevanovic added 2 commits November 6, 2026 16:09
CA-file does two things: federation uses it to verify its DTLS peers, and
set_ctx_ex() applies it to the client-facing TLS/DTLS listeners, where it
makes coturn require a client certificate (SSL_VERIFY_PEER |
SSL_VERIFY_FAIL_IF_NO_PEER_CERT). Deployments set CA-file for federation,
so every TURNS client without a certificate is rejected: the TLS 1.3
handshake completes, then the server sends certificate_required and resets
the connection at the first Allocate. Wire clients have no client
certificate, and browsers cannot present one to a TURN server.

federation-CA-file gives federation its own CA bundle. set_ctx_ex() now
takes the CA file as a parameter: the listeners pass CA-file (upstream
meaning, client certificate authentication), federation passes
federation-CA-file. When federation-CA-file is not set, federation falls
back to CA-file, so existing configurations behave as before.
The chart set CA-file on every deployment ("mandatory for federated
DTLS"), even without federation. CA-file makes coturn require client
certificates on its TLS listener, so TURNS was unusable for clients.

Render the ca.* bundle as federation-CA-file inside the federate.dtls
block instead, and no longer set CA-file. Needs an image with
federation-CA-file: an older coturn ignores the unknown option with a
warning and runs DTLS federation without certificate validation.
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Dusan Stevanovic seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@smatting smatting left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this doesn't change the configuration surface, right? So that part I can approve.

However I can't review the changes in the c code.

@bsinou
bsinou changed the base branch from wireapp/4.6.2-federation to dev November 11, 2026 06:30
@bsinou
bsinou requested a review from a team as a code owner November 11, 2026 06:30
@bsinou bsinou closed this Nov 11, 2026
@bsinou bsinou reopened this Nov 11, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants