Zum Inhalt

HTTPS aktivieren

Warum HTTPS wichtig ist

Browser wie Chrome verlangen, dass Drovio Server über HTTPS erreichbar ist, damit ein Benutzer sein Mikrofon oder seine Webcam aus dem Web-Client heraus freigeben kann.

Schritte

  1. Beziehen Sie bei Ihrer Zertifizierungsstelle ein Zertifikat, ein Zwischenzertifikat und einen privaten Schlüssel, als .crt und .key oder als .pem. In den folgenden Befehlen heißen sie drovioserver.crt, ca.crt und drovioserver.key.

  2. Führen Sie auf der Maschine, auf der Drovio Server bereitgestellt ist, die folgenden Befehle aus. Ersetzen Sie eUv4ffT4 durch ein Passwort Ihrer Wahl und your_hostname durch den Hostnamen, für den das Zertifikat ausgestellt wurde. Der erste Befehl löscht den vorhandenen Keystore, damit der Import von einer sauberen Datei ausgeht; sichern Sie ihn vorher, falls er für Sie zählt. Es handelt sich nicht um den SAML-Keystore, der eine separate Datei ist und über users.auth.saml.keystore angegeben wird.

    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
    

    Löschen Sie C:\ProgramData\Drovio\Drovio Server\keystore.jks, dann:

    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
    

    Werkzeuge unter Windows

    • Laden Sie die OpenSSL-Binaries herunter, zum Beispiel von https://indy.fulgan.com/SSL/.
    • Der Befehl keytool liegt im Ordner bin der Java-JRE, die zusammen mit Drovio Server bereits unter C:\Program Files\Java\ installiert ist.
  3. Ändern Sie die folgenden Felder in der Konfigurationsdatei oder direkt in der Administrationsoberfläche, im Abschnitt http:

    "tls": true,
    "keystore": "/etc/drovio-server/keystore.jks",
    "keystore_password": "eUv4ffT4",
    "https_port": 443
    

    https_port zu setzen ist wichtig: TLS allein zu aktivieren lässt den Server weiterhin auf seinem Standardport 8090 lauschen.

    Das Keystore-Passwort wird im Klartext gespeichert

    settings.conf enthält nun ein Geheimnis. Stellen Sie sicher, dass die Datei nur für das Konto lesbar ist, unter dem Drovio Server läuft.

  4. Starten Sie den Dienst Drovio Server neu. Anders als der größte Teil der Konfiguration wird alles, was den HTTP-Listener definiert, nur einmal beim Start gelesen, daher ist hier ein Neustart nötig. Siehe Dienst starten und stoppen für Ihre Plattform.

  5. Prüfen Sie das Ergebnis von einer anderen Maschine aus:

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

    Die Ausgabe muss Ihr Zertifikat und das Zwischenzertifikat zeigen. Ein fehlendes Zwischenzertifikat ist der häufigste Fehler: manche Browser akzeptieren die Verbindung trotzdem, während die Drovio App sie ablehnt.

Zertifikat erneuern

Der Keystore enthält eine Kopie des Zertifikats, keinen Verweis darauf: ein erneuertes Zertifikat muss daher erneut importiert werden. Wiederholen Sie Schritt 2 jedes Mal, was mit Let's Encrypt alle 90 Tage der Fall ist.

Senden Sie unter Linux SIGUSR2 an Drovio Server, um es anzuwenden: der Keystore wird von der Festplatte neu gelesen und das Zertifikat auf dem laufenden Listener ausgetauscht, ohne eine einzige Verbindung zu verlieren:

systemctl kill --signal=SIGUSR2 drovio-server

Die Logzeile SSL certificate has been reloaded bestätigt es. Ein Fehlschlag wird mit SSL certificate reloading has failed gemeldet, und das vorherige Zertifikat bleibt in Betrieb.

Erneuerung automatisieren

Damit lässt sich die Erneuerung vollständig automatisieren: lassen Sie Schritt 2 vom Deploy-Hook Ihres ACME-Clients ausführen und senden Sie anschließend das Signal. Kein Neustart, kein Wartungsfenster.

Windows

Unter Windows werden Signale nicht verarbeitet. Ein erneuertes Zertifikat anzuwenden erfordert dort einen Neustart des Dienstes.

Protokolle und Cipher Suites

TLS 1.2 und TLS 1.3 sind standardmäßig aktiviert. Um sie einzuschränken oder eine Liste von Cipher Suites festzulegen, verwenden Sie http.tls_protocols und http.tls_cipher_suites.