Débogage RTSPS et RTSP sur TLS : certificats de caméra, échecs de prise de contact et erreurs de flux sécurisé
Comment dépanner les échecs RTSPS et RTSP sur TLS, y compris les erreurs de certificat, les problèmes de prise de contact TLS, le streaming sécurisé des caméras, l'authentification et le transport multimédia.
Le dépannage RTSP est déjà multicouche: "l'URL, l'authentification, le SDP, le transport, le RTP, le RTCP, le codec et le chemin réseau sont tous importants. RTSPS ajoute une autre couche avant même que la conversation RTSP puisse commencer. Si la négociation TLS échoue, le client n'atteint jamais « OPTIONS », « DESCRIBE », « SETUP » ou « PLAY ». L'utilisateur voit « impossible de se connecter », « échec de la prise de contact TLS », « échec de la vérification du certificat », « RTSP sécurisé ne fonctionne pas » ou simplement un écran noir."
Les recherches telles que « La caméra RTSPS ne fonctionne pas », « Erreur de certificat RTSP sur TLS », « Échec de la prise de contact TLS de la caméra » et « Échec du flux RTSP sécurisé » proviennent généralement d'équipes qui ont déjà essayé le RTSP normal et ont maintenant besoin de savoir si le transport sécurisé est interrompu, si le certificat n'est pas fiable, si la caméra ne prend en charge que les anciennes versions de TLS ou si le flux échoue après la réussite de TLS.
RTSP Inspector est utile dans ce flux de travail car la bonne question n'est pas « le lecteur ouvre-t-il la vidéo ? La bonne question est "la connexion sécurisée est-elle terminée, le RTSP a-t-il commencé, l'authentification est-elle terminée, le SDP a-t-il décrit le média et le RTP est-il arrivé ?"
RTSPS n'est pas seulement RTSP avec une URL différente
Plain RTSP utilise souvent une URL telle que :
rtsp://camera.example.com:554/stream1
RTSPS commonly uses:
rtsps://camera.example.com:322/stream1
ou un port RTSP sécurisé spécifique au fournisseur. Avant l'envoi d'une méthode RTSP, le client et la caméra effectuent une négociation TLS. Cette poignée de main négocie la version du protocole, la suite de chiffrement, l'identité du certificat et les clés de session sécurisées.
Si la couche TLS échoue, il n'y aura pas de code d'état RTSP. Vous ne verrez pas « 401 non autorisé », « 404 non trouvé » ou SDP. Le flux échoue avant que RTSP n'existe.
Causes courantes d’échec RTSPS
Les échecs RTSPS appartiennent généralement à ces groupes :
- La caméra n'active pas réellement RTSPS.
- Le port RTSP sécurisé est erroné ou bloqué.
- Le certificat de la caméra est auto-signé.
- Le nom d'hôte du certificat ne correspond pas à l'URL.
- Le certificat est expiré.
- Le client nécessite un TLS moderne, mais la caméra ne prend en charge que l'ancien TLS.
- La caméra nécessite un certificat client.
- Un proxy ou un pare-feu met fin à TLS de manière incorrecte.
- TLS réussit mais l'authentification RTSP échoue par la suite.
- RTSP réussit mais le transport multimédia échoue après « PLAY ».
Les deux derniers sont importants. Une fois que TLS réussit, les problèmes RTSP habituels subsistent. Une connexion RTSP sécurisée peut toujours échouer en raison d'une authentification Digest, d'un SDP défectueux, d'un RTP bloqué, de la prise en charge H.265, d'une perte de paquets ou d'un SPS/PPS manquant.
Incompatibilité de nom de certificat
De nombreuses caméras sont livrées avec des certificats qui ne correspondent pas à l’adresse réellement saisie par les utilisateurs. Le certificat peut être délivré au nom d'hôte d'un appareil, tandis que l'utilisateur se connecte par adresse IP :
rtsps://192.168.1.50/stream1
If the certificate subject or subject alternative name does not include 192.168.1.50, a strict client may reject it. Some players ignore this error by default; others fail hard. That is why RTSPS may work in one tool and fail in another.
For production deployments, use a certificate whose name matches the DNS name clients use. For lab diagnostics, record whether the failure is a trust error, a hostname mismatch, or a lower-level TLS handshake failure.
Self-signed camera certificates
IP cameras and NVRs often use self-signed certificates. A self-signed certificate is not automatically trusted by the operating system or application. The client may report:
certificate verify failedunknown caself signed certificateunable to get local issuer certificate
This does not prove that the stream URL is wrong. It proves that the client does not trust the certificate chain.
In a controlled environment, you can import the camera certificate or private CA into the trust store. In a product workflow, the safer answer is to make trust behavior explicit and visible instead of silently disabling verification.
Old TLS versions and cipher suites
Some cameras have old firmware and support only outdated TLS versions or cipher suites. A modern client may reject them for security reasons. The result may look like a generic connection reset or handshake failure.
Useful questions:
- Which TLS version did the camera offer?
- Did the client reject the cipher suite?
- Did the camera close the connection immediately?
- Does the same camera work with plain RTSP?
- Did a firmware update change TLS behavior?
If plain RTSP works and RTSPS fails before RTSP methods appear, focus on TLS compatibility before debugging SDP or RTP.
RTSPS authentication still matters
TLS encrypts the connection, but it does not replace RTSP authentication. After TLS succeeds, the camera may still return:
RTSP/1.0 401 Unauthorized
WWW-Authenticate: Digest realm="IP Camera", nonce="..."
Cela signifie que la connexion sécurisée fonctionne correctement, mais que la couche de connexion RTSP a toujours besoin d'informations d'identification. Les utilisateurs confondent souvent l'authentification par certificat avec l'authentification du compte d'appareil photo. Ils sont séparés.
La séquence correcte est :
- La connexion TCP s'ouvre.
- La négociation TLS réussit.
- La requête RTSP est envoyée dans TLS.
- Défis de caméra avec authentification RTSP si nécessaire.
- Le client envoie l'autorisation RTSP.
- La caméra renvoie SDP.
- Le client configure les pistes multimédias.
- Les paquets multimédia arrivent.
Transport des médias après RTSPS
RTSPS protège le contrôle RTSP, mais les détails du transport multimédia varient selon la caméra et le client. Certains déploiements utilisent le RTP entrelacé sur la connexion RTSP protégée par TLS. D'autres négocient séparément le transport des médias. Le comportement du pare-feu et du NAT peut toujours avoir son importance.
Si DESCRIBE, SETUP et PLAY réussissent mais qu'aucune vidéo n'apparaît, ne continuez pas à rechercher les certificats. Inspecter la diffusion des médias :
- Les paquets RTP sont-ils entrelacés sur la connexion RTSP ?
- La caméra a-t-elle négocié les ports UDP ?
- Les numéros de séquence RTP augmentent-ils ?
- SDP déclare-t-il H.264 ou H.265 ?
- Les enregistrements de configuration du codec sont-ils présents ?
- RTCP affiche-t-il une perte ou une gigue ?
Le succès de TLS n’est qu’un point de contrôle.
Liste de contrôle de débogage pour RTSPS
Utilisez cette commande :
- Confirmez que la caméra prend en charge RTSPS et identifiez le port RTSP sécurisé.
- Vérifiez que la connexion TCP à ce port réussit.
- Déterminez si l’échec se produit avant ou après la négociation TLS.
- Inspectez la confiance, l’expiration et la correspondance du nom d’hôte du certificat.
- Vérifiez la version TLS et la compatibilité du chiffrement.
- Confirmez si les certificats clients sont requis.
- Une fois que TLS fonctionne, inspectez RTSP
OPTIONS,DESCRIBE,SETUPetPLAY. - Inspectez l’authentification RTSP séparément de TLS.
- Inspectez SDP pour les codecs et les pistes.
- Inspectez RTP et RTCP après le début de la lecture.
Diagnostic final
Les échecs RTSPS doivent être divisés en échecs TLS et échecs RTSP. Si la négociation échoue, déboguez les certificats, la confiance, le nom d'hôte, la version TLS, la suite de chiffrement et le port sécurisé. Si la prise de contact réussit, déboguer RTSP exactement comme vous le feriez pour un flux normal : authentification, SDP, transport, RTP, RTCP et preuve de codec.
RTSP Inspector s'adapte à ce flux de travail car il maintient le diagnostic en couches. Le streaming sécurisé d'une caméra ne consiste pas simplement à « le lecteur ouvre la vidéo » ou à « le lecteur échoue ». Il s’agit d’une chaîne d’étapes protocolaires observables, et la solution dépend du premier lien rompu.