Nous avons reçu quelques messages de clients qui étaient surpris la première fois qu'ils utilisaient VirtualHub v2 (toujours en bêta). En effet, la première fois que vous vous connectez à l'interface web de VirtualHub v2, le browser va bloquer la page et affiche un gros warning au sujet d'un certificat invalide. Pas de panique! Ça n'est rien de grave. On vous explique tout.
VirtualHub v2 utilise des connexions sécurisées à l'aide SSL/TLS. L'authentification SSL/TLS est baséee sur une chaîne de certificats électroniques. Lors de l'établissement de la connexion, le client vérifie la validité de la chaîne de certificats et s'assure qu'au moins l'un des certificats de la chaîne a été émis par une autorité reconnue par le client. Pour établir une connexion 100% sécurisée, il faut donc que le client, en l'occurrence le browser, connaisse les émetteurs de certificats du serveur auxquels on cherche à se connecter.
Lors de la première connexion, le browser ne connaît pas le certificat
Qu'est-ce qu'un certificat SSL ?
Un certificat est un petit fichier de données cryptographiques qui lie une clé cryptographique aux détails du serveur. Cela comprend l'URL du serveur, le nom de l'entité qui a établi ce certificat ainsi que la date de validité du certificat.
Un certificat est une sorte de passeport pour un serveur. Lors de la connexion, le client demande le passeport du serveur et vérifie que le passeport correspond bien à ce à quoi le client s'attend. Il va vérifier que le certificat est toujours valide, que l'URL pour laquelle ce certificat est prévu est bien celle que le client utilise. Enfin, il vérifie que l'entité qui a produit ce certificat est une entité de confiance.
Il y a deux types de certificats: les certificats autosignés et les certificats officiels.
Les certificats officiels sont délivrés par des autorités de certification reconnues et impliquent une validation rigoureuse de l'identité du propriétaire du site. C'est typiquement les certificats que vous retrouvez sur tous les sites web. Ces certificats sont payants et ne sont émis que par des entités reconnues universellement (Comodo, DigiCert, etc). Ces certificats sont reconnus automatiquement par les browsers web, car le browser connaît les autorités de certification.
En revanche, les certificats autosignés sont générés par l'administrateur du serveur sans implication d'autorité de certification. Par conséquent, le browser web ne connaît pas ces certificats.
D'un point de vue cryptographique, ces deux types de certificats proposent la même qualité de chiffrement et contiennent les mêmes informations, mais les certificats officiels sont validés par une autorité de certification commune entre le serveur et le client.
Pourquoi j'ai un warning avec VirtualHub v2 ?
Pour accepter des connexions SSL/TLl, VirtualHub a besoin d'un certificat SSL. Lors du premier démarrage, VirtualHub génère un certificat autosigné et le sauve dans le même répertoire que les fichiers de configuration.
Ce certificat est valide pour 2 ans et pour les noms d'hôte suivant:
- Le nom d'hôte configuré par l'OS
- le nom d'hôte "localhost"
- l'adresse 127.0.0.1 (IPv4)
- l'adresse ::1 (IPv6)
Mais ce certificat est autosigné, donc votre browser web ne peut pas vérifier son authenticité auprès d'une entité de certification. C'est pour cette raison que le browser web affiche ce message lors de la première connexion.
Vous vous demandez certainement pourquoi VirtualHub n'est pas livré avec un certificat officiel. Hormis le problème de coût, il est impossible de deviner le nom d'hôte de votre machine à l'avance. Ce certificat doit identifier de manière unique votre installation de VirtualHub.
Que faire ?
Il y a deux solutions:
- Ajouter ce certificat à la liste des certificats reconnus par le browser web
- Configurer VirtualHub pour utiliser un certificat officiel
Ajouter un certificat au browser
La première solution est très simple et correspond à 99.9% des cas. Quand le browser web bloque l'accès au site web, il faut cliquer sur le bouton qui permet d'ajouter ce certificat à la liste des certificats acceptés.
Pour la plupart des browsers, c'est fait en 2 étapes. Le premier pour accéder à la section "advanced" qui affiche plus d'informations sur le certificat et propose un bouton qui permet d'installer le certificat.
Sous Firefox, il faut cliquer sur "Advanced" puis sur "Accept the Risks and Continue".
Le bouton pour ajouter un certificat sous Firefox
Sous Chrome et Edge, il faut cliquer sur "Advanced..." puis sur le lien "Proceed to XXXX (unsafe)" en bas de page.
Sous Chrome et Edge, il faut cliquer sur "Advanced..." puis sur le lien "Proceed to XXXX (unsafe)" en bas de page.
Une fois effectué, le browser acceptera de se connecter à VirtualHub. Il faut effectuer cette opération uniquement lors de la première connexion.
Utiliser un certificat officiel
La deuxième solution est d'acheter et utiliser un certificat officiel. Cette solution permet de s'affranchir du warning, mais nécessite d'acheter et de gérer un certificat SSL comme pour un site web. L'achat et la gestion de ces certificats est bien plus complexe et nécessiterait un article dédié. Mais si vous désirez installer votre propre certificat, c'est possible. Il suffit de lancer VirtualHub avec l'option -s suivie du path du certificat à utiliser.
Conclusion
Vous savez maintenant pourquoi VirtualHub v2 n'est pas reconnu automatiquement par votre browser. Ça n'est pas qu'il est infecté par un virus, mais c'est lié au fonctionnement des certificats SSL. Ce problème ne concerne pas seulement VirtualHub mais n'importe quelle application ou objet connecté dans votre réseau. Le même "problème" est présent sur les serveurs NAS ou sur les routeurs Wifi.