Aller au contenu

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

  1. Obtenez auprès de votre autorité de certification un certificat, un certificat intermédiaire et une clé privée, en .crt et .key ou en .pem. Ils sont nommés drovioserver.crt, ca.crt et drovioserver.key dans les commandes qui suivent.

  2. Sur la machine où Drovio Server est déployé, exécutez les commandes suivantes. Remplacez eUv4ffT4 par un mot de passe de votre choix et your_hostname par 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é par users.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_hostname
    

    Supprimez 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_hostname
    

    Outils sous Windows

    • Téléchargez les binaires OpenSSL, par exemple depuis https://indy.fulgan.com/SSL/.
    • La commande keytool se trouve dans le dossier bin du JRE Java, déjà installé sous C:\Program Files\Java\ avec Drovio Server.
  3. 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": 443
    

    Renseigner https_port a 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.conf contient désormais un secret. Assurez-vous que le fichier n'est lisible que par le compte qui exécute Drovio Server.

  4. 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.

  5. Vérifiez le résultat depuis une autre machine :

    openssl s_client -connect your_hostname:443 -showcerts </dev/null
    

    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 :

systemctl kill --signal=SIGUSR2 drovio-server

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.