Activer HTTPS¶
Pourquoi HTTPS compte
Les navigateurs comme Chrome exigent que Drovio Server soit accessible en HTTPS pour qu'un utilisateur puisse partager son microphone ou sa webcam depuis le client web.
Étapes¶
-
Obtenez auprès de votre autorité de certification un certificat, un certificat intermédiaire et une clé privée, en
.crtet.keyou en.pem. Ils sont nommésdrovioserver.crt,ca.crtetdrovioserver.keydans les commandes qui suivent. -
Sur la machine où Drovio Server est déployé, exécutez les commandes suivantes. Remplacez
eUv4ffT4par un mot de passe de votre choix etyour_hostnamepar le nom d'hôte pour lequel le certificat a été émis. La première commande supprime le magasin de clés existant pour que l'import parte d'un fichier propre ; sauvegardez-le d'abord s'il compte pour vous. Il ne s'agit pas du magasin SAML, qui est un fichier distinct désigné parusers.auth.saml.keystore.rm /etc/drovio-server/keystore.jks openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key \ -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4 keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 \ -destkeystore /etc/drovio-server/keystore.jks \ -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 \ -alias your_hostnameSupprimez
C:\ProgramData\Drovio\Drovio Server\keystore.jks, puis :openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key ^ -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4 keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 ^ -destkeystore "C:\ProgramData\Drovio\Drovio Server\keystore.jks" ^ -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 ^ -alias your_hostnameOutils sous Windows
- Téléchargez les binaires OpenSSL, par exemple depuis https://indy.fulgan.com/SSL/.
- La commande
keytoolse trouve dans le dossierbindu JRE Java, déjà installé sousC:\Program Files\Java\avec Drovio Server.
-
Modifiez les champs suivants dans le fichier de configuration, ou directement depuis le panneau d'administration, dans la section
http:"tls": true, "keystore": "/etc/drovio-server/keystore.jks", "keystore_password": "eUv4ffT4", "https_port": 443Renseigner
https_porta son importance : activer TLS seul laisse le serveur à l'écoute sur son port par défaut,8090.Le mot de passe du magasin est stocké en clair
settings.confcontient désormais un secret. Assurez-vous que le fichier n'est lisible que par le compte qui exécute Drovio Server. -
Redémarrez le service Drovio Server. Contrairement à la majeure partie de la configuration, tout ce qui définit l'écouteur HTTP est lu une seule fois au démarrage, un redémarrage est donc nécessaire ici. Voir Démarrer et arrêter le service pour votre plateforme.
-
Vérifiez le résultat depuis une autre machine :
La sortie doit montrer votre certificat et le certificat intermédiaire. Un intermédiaire manquant est l'erreur la plus fréquente : certains navigateurs accepteront tout de même la connexion là où l'application Drovio la refusera.
Renouveler le certificat¶
Le magasin contient une copie du certificat, pas une référence vers lui : un certificat renouvelé doit donc être réimporté. Rejouez l'étape 2 à chaque fois, ce qui survient tous les 90 jours avec Let's Encrypt.
Sous Linux, envoyez SIGUSR2 à Drovio Server pour l'appliquer : le magasin
est relu depuis le disque et le certificat est remplacé sur l'écouteur en cours,
sans perdre une seule connexion :
La ligne de journal SSL certificate has been reloaded le confirme. Un échec est
signalé par SSL certificate reloading has failed, et le certificat précédent
reste en service.
Automatiser le renouvellement
Le renouvellement devient ainsi entièrement automatisable : faites exécuter l'étape 2 par le hook de déploiement de votre client ACME, puis envoyez le signal. Aucun redémarrage, aucune fenêtre de maintenance.
Windows
Les signaux ne sont pas gérés sous Windows. Appliquer un certificat renouvelé y impose de redémarrer le service.
Protocoles et suites de chiffrement¶
TLS 1.2 et TLS 1.3 sont activés par défaut. Pour les restreindre, ou pour figer
une liste de suites de chiffrement, utilisez
http.tls_protocols et http.tls_cipher_suites.