SSL/TLS certificat auto-signé

Fermé
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023 - 5 avril 2022 à 19:37
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 6 avril 2022 à 22:28
Bonjour,

J'ai un petit problème de compréhension avec le protocole SSL/TLS, ce qui me bloque alors dans le développement de certains outils. Par exemple, je suis en train de configurer une architecture CTI, composée de divers tels que Cortex et TheHive.
Ces derniers doivent pouvoir communiquer entre eux pour s'échanger des données, relatifs à des cas de cyberattaques, des IOCs, etc.

Par sécurité, j'ai créé un certificat SSL pour TheHive, auto-signé et avec Nginx (comme proxy).
De même pour Cortex.

Lorsque Cortex veut communiquer avec TheHive, j'obtiens une erreur (via l'interface Web) car en effet TheHive détient un certificat auto-signé. Cependant, il n'existe pas à ma connaissance de manière d'éviter la vérification de certifcats par Cortex, de plus ce n'est pas très sécurisé ...

Je dois donc indiquer à Cortex, que le certificat de TheHive est vérifié dans sa base. Et là, je ne sais pas trop comment faire. Comment indiquer à un serveur, à un outil qu'un certificat est "valide" ?

Il faut sûrement créer quelque chose du côté de TheHive, et l'insérer dans les fichiers de certificats de Cortex mais j'avoue ne pas comprendre le fonctionnement.

En espérant avoir été clair,

Lynow

1 réponse

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
6 avril 2022 à 22:28
Bonjour,

Un certificat est dit valide lorsqu'il est signé par une autorité de certification (CA) autorisée. On compare alors le certificat client/serveur avec un certificat CA. Les certificats clients/serveurs doivent être signés par une CA, tandis que le certificat d'une CA racine n'est pas signé (puisque racine = pas d’autorité au-dessus pour le signer).

Les navigateurs Web intègrent une liste de CA mais en-dehors de ce cas spécifique (bien que courant), les applications utilisant TLS offrent un moyen de préciser le(s) certificat(s) CA vis-à-vis du/desquel les certificats clients/serveurs seront évalués.

Il y a également d'autres méthodes comme l'embarquement des certificats que l'application doit accepter (certificate pinning), ou de façon équivalente, une de leur empreinte, mais cette méthode rend la gestion difficile car chaque application doit embarquer les certificats de chacun de ses correspondants potentiel. Tandis qu'avec une CA centrale, il n'est pas nécessaire de connaître tous les certificats, puisque l'app peut vérifier si un certificat a été émis par la CA donnée.

Je te conseille ce document pour apprendre par la pratique :
https://gist.github.com/Soarez/9688998

Il y a aussi d'autres critères comme les dates de début/fin de validité ou le nom commun (CN) dans certains cas.
0