bug: a lack of mutual TLS (mTLS) support for several API endpoints

Aperta
#7,371 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@Gaurika-05 ci sta già lavorando.

Dal 25/8/2026.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java, react-native, swift

Direzione di ricerca

Inizia confrontando la gestione dei certificati in ios/NotificationService/NotificationService.swift con ios/Shared/RocketChat/API/API.swift, quindi esamina android/app/src/main/java/chat/rocket/reactnative/notification/LoadNotification.java. Verifica che le richieste interessate a /admin/info e /api/v1/push.get utilizzino il contesto del certificato client richiesto su entrambe le piattaforme e abbiano esito positivo attraverso un proxy nginx con mutual-TLS.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

🐛 bug type: bug
Describe the Bug

The Problem

Both iOS and Android verions of RC do not send client certificate for the following endpoints while contacting a RC server with nginx as a reverse proxy instance in front of it

nginx is configured to authenticate users with certificates (mutual TLS)

The endpoints are:

  1. /admin/info
  2. /api/v1/push.get
Steps to Reproduce

Admin Panel

While clicking on the Admin panel button in RC app, the 400 Bad Request error occurs

nginx log entry:

GET /admin/info?layout=embedded HTTP/2.0" 400

This results in no possibility to access the administration workspace on mobile devices

Image

Push Notifications

While receiving a push notification message and trying to load more data from the server, the 400 Bad Request error occurs

As a result no additional information is received from the server

nginx log entry:

GET /api/v1/push.get?id={ID} HTTP/2.0" 400
Push Notifications: iOS

For the latter case it looks as if there is a lack of delegate: RocketChatURLSessionDelegate() in URLSession
https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/e43a18147c3ecc7527a67e86dd58b4ca6fb4ce26/ios/NotificationService/NotificationService.swift#L268

but in the API class it is handled correctly
https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/e43a18147c3ecc7527a67e86dd58b4ca6fb4ce26/ios/Shared/RocketChat/API/API.swift#L25

Push Notifications: Android

Pushes on the Android app: it looks like the new OkHttpClient.Builder() is missing a user credentials context while sending a request to /api/v1/push.get
https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/e43a18147c3ecc7527a67e86dd58b4ca6fb4ce26/android/app/src/main/java/chat/rocket/reactnative/notification/LoadNotification.java#L111

Additional Information

Below are the previous related issue and PR, that could help to get the context of the problem:

  • #5204
  • #6130
Expected Behavior

No response

Actual Behavior

No response

Rocket.Chat Server Version

8.4.2

Rocket.Chat App Version

4.72.0

Device Name

iPhone, Samsung

OS Version

iOS 18, Android 16

Additional Context

p.s.
It's not directly related to this issue, but also there are two places doing the same thing in different manner

https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/e43a18147c3ecc7527a67e86dd58b4ca6fb4ce26/ios/RocketChat%20Watch%20App/Client/RocketChatClient.swift#L25
https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/cd6f2a89f5e9652ce83b8ae47669c3a638e7ff15/ios/RocketChat%20Watch%20App/Client/URLSessionCertificateHandling.swift#L5

https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/cd6f2a89f5e9652ce83b8ae47669c3a638e7ff15/ios/Shared/RocketChat/API/API.swift#L14

Lingua principale
TypeScript
Stelle
2.4k
Fork
1.5k
Merge medio
1g 15h
PR unite (30g)
29

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di RocketChat/Rocket.Chat.ReactNative

Tutte le issue di RocketChat/Rocket.Chat.ReactNative

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.