sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-ee
sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Der Zugriff auf die Onlyoffice-Anwendung kann mit SSL gesichert werden, um unbefugten Zugriff zu verhindern. Während ein CA-zertifiziertes SSL-Zertifikat die Vertrauensüberprüfung über die CA ermöglicht, können selbstsignierte Zertifikate auch eine gleichwertige Vertrauensüberprüfung bieten, solange jeder Client einige zusätzliche Schritte unternimmt, um die Identität Ihrer Webseite zu überprüfen. Nachfolgend finden Sie Anweisungen zum Erreichen dieses Ziels.
Um die Anwendung per SSL abzusichern, sind grundsätzlich zwei Elemente nötig:
- Privatschlüssel (.key)
- SSL-Zertifikat (.crt)
Sie müssen also die folgenden Dateien erstellen und installieren:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
Bei Verwendung von CA-zertifizierten Zertifikaten (z. B. Let's Encrypt) werden Ihnen diese Dateien von der CA zur Verfügung gestellt. Wenn Sie selbstsignierte Zertifikate verwenden, müssen Sie diese Dateien selbst generieren.
Umstellung von ONLYOFFICE Docs auf HTTPS mit certbot
Die einfachste Möglichkeit, ONLYOFFICE Docs auf HTTPS umzustellen, besteht darin, SSL-Zertifikate von Let's Encrypt automatisch mit certbot zu erhalten.
Führen Sie den Docker-Container ONLYOFFICE Docs aus, geben Sie die Ports 80 und 443 an und legen Sie Ihre eigenen Werte für die Variablen fest:
sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-ee
sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Wobei:
- LETS_ENCRYPT_DOMAIN - einen Domainnamen, der für das Zertifikat verwendet werden soll.
- LETS_ENCRYPT_MAIL - eine E-Mail, die für die Registrierung und den Wiederherstellungskontakt verwendet wird.
Das letsencrypt.org CA-signierte Zertifikat wird automatisch generiert und auf Ihrem Server installiert. Jetzt sollten Ihre ONLYOFFICE Docs unter der Adresse https://yourdomain.com verfügbar sein.
Generierung von selbstsignierten Zertifikaten
Die Generierung selbstsignierter SSL-Zertifikate umfasst ein einfaches Verfahren in drei Schritten
SCHRITT 1: Erstellen Sie den privaten Serverschlüssel
openssl genrsa -out onlyoffice.key 2048
SCHRITT 2: Erstellen Sie das Certificate Signing Request (CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr
SCHRITT 3: Signieren Sie das Zertifikat mit dem privaten Schlüssel und CSR
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
Sie haben nun ein 365 Tage gültiges SSL-Zertifikat generiert.
Stärkung der Serversicherheit
In diesem Abschnitt finden Sie Anweisungen zur Stärkung der Serversicherheit.
Um dies zu erreichen, müssen Sie stärkere DHE-Parameter generieren.
openssl dhparam -out dhparam.pem 2048
Installation der SSL-Zertifikate
Von den vier oben generierten Dateien müssen Sie die Dateien onlyoffice.key
, onlyoffice.crt
und dhparam.pem
auf dem onlyoffice-Server installieren. Die CSR-Datei wird nicht benötigt, aber stellen Sie sicher, dass Sie die Datei korrekt sichern (falls Sie sie jemals wieder benötigen).
Der Standardpfad, den die onlyoffice-Anwendung für die Suche nach SSL-Zertifikaten konfiguriert hat, lautet /var/www/onlyoffice/Data/certs
. Dies kann jedoch mit den Konfigurationsoptionen SSL_KEY_PATH
, SSL_CERTIFICATE_PATH
und SSL_DHPARAM_PATH
geändert werden.
Der Pfad /var/www/onlyoffice/Data/
ist der Pfad des Datenspeichers, was bedeutet, dass Sie einen Ordner namens certs innerhalb von /app/onlyoffice/DocumentServer/data/
erstellen und die Dateien hineinkopieren müssen. Aktualisieren Sie als Maßnahme aus Sicherheitsgründen die Berechtigung für die Datei onlyoffice.key
sodass sie nur vom Besitzer gelesen werden kann.
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
Und starten Sie den Docker-Container neu:
sudo docker restart {{DOCUMENT_SERVER_ID}}
Sie sind jetzt nur noch einen Schritt von der Sicherung unserer Anwendung entfernt.
Verfügbare Konfigurationsparameter
Bitte beachten Sie die Docker-Befehlsoptionen für das Flag --env-file
, wo Sie alle erforderlichen Umgebungsvariablen in einer einzigen Datei angeben können. Dies erspart Ihnen das Schreiben eines möglicherweise langen Docker-Ausführungsbefehls.
Nachfolgend finden Sie die vollständige Liste der Parameter, die mithilfe von Umgebungsvariablen festgelegt werden können.
- ONLYOFFICE_HTTPS_HSTS_ENABLED: Erweiterte Konfigurationsoption zum Ausschalten der HSTS-Konfiguration. Gilt nur, wenn SSL verwendet wird. Der Standardwert ist
true
.
- ONLYOFFICE_HTTPS_HSTS_MAXAGE: Erweiterte Konfigurationsoption zum Festlegen des HSTS max-age in der onlyoffice NGINX vHost-Konfiguration. Gilt nur, wenn SSL verwendet wird. Standardmäßig ist
31536000
.
- SSL_CERTIFICATE_PATH: Der Pfad zum zu verwendenden SSL-Zertifikat. Standardmäßig ist
/var/www/onlyoffice/Data/certs/tls.crt
.
- SSL_KEY_PATH: Der Pfad zum privaten Schlüssel des SSL-Zertifikats. Standardmäßig ist
/var/www/onlyoffice/Data/certs/tls.key
.
- SSL_DHPARAM_PATH: Der Pfad zum Diffie-Hellman-Parameter. Standardmäßig ist
/var/www/onlyoffice/Data/certs/dhparam.pem
.
- SSL_VERIFY_CLIENT: Aktivieren Sie die Überprüfung von Clientzertifikaten mithilfe der Datei
CA_CERTIFICATES_PATH
. Standardmäßig ist false
.
- DB_TYPE: Der Datenbanktyp. Unterstützte Werte sind
postgres
, mariadb
oder mysql
. Standardmäßig ist postgres
.
- DB_HOST: Die IP-Adresse oder der Name des Hosts, auf dem der Datenbankserver läuft.
- DB_PORT: Die Portnummer des Datenbankservers.
- DB_NAME: Der Name einer Datenbank, die beim Image-Start erstellt werden soll.
- DB_USER: Der neue Benutzername mit Superuser-Berechtigungen für das Datenbankkonto.
- DB_PWD: Das für das Datenbankkonto festgelegte Kennwort.
- AMQP_URI: AMQP URI um Herstellen einer Verbindung mit dem Message Broker-Server.
- AMQP_TYPE: Der Nachrichtenbrokertyp. Unterstützte Werte sind
rabbitmq
oder activemq
. Standardmäßig ist rabbitmq
.
- REDIS_SERVER_HOST: Die IP-Adresse oder der Name des Hosts, auf dem der Redis-Server ausgeführt wird.
- REDIS_SERVER_PORT: Die Portnummer des Redis-Servers.
- NGINX_WORKER_PROCESSES: Definiert die Anzahl der NGINX-Worker-Prozesse.
- NGINX_WORKER_CONNECTIONS: Legt die maximale Anzahl gleichzeitiger Verbindungen fest, die von einem NGINX-Workerprozess geöffnet werden können.
- SECURE_LINK_SECRET: Definiert das Geheimnis für die NGINX-Konfigurationsanweisung secure_link_md5. Standardmäßig ist
random string
.
- JWT_ENABLED: Gibt die Aktivierung der JSON-Webtoken-Validierung durch ONLYOFFICE Docs an. Standardmäßig ist
true
.
- JWT_SECRET: Definiert den geheimen Schlüssel zum Validieren des JSON-Webtokens in der Anfrage an ONLYOFFICE Docs. Standardmäßig ist
secret
.
- JWT_HEADER: Definiert den HTTP-Header, der zum Senden des JSON-Webtokens verwendet wird. Standardmäßig ist
Authorization
.
- JWT_IN_BODY: Gibt die Aktivierung der Tokenvalidierung im Anfragetext an ONLYOFFICE Docs an. Standardmäßig ist
false
.
- WOPI_ENABLED: Gibt die Aktivierung der Wopi-Handler an. Standardmäßig ist
false
.
- USE_UNAUTHORIZED_STORAGE: Wird auf
true
gesetzt, wenn Sie selbstsignierte Zertifikate für Ihren Speicherserver verwenden, z. B. Nextcloud. Standardmäßig ist false
.
- GENERATE_FONTS: Wenn auf
true
gesetzt ist, werden die Schriftartenliste und die Thumbnails der Schriftarten usw. bei jedem Start neu generiert. Standardmäßig ist true
.
- METRICS_ENABLED: Gibt die Aktivierung von StatsD für ONLYOFFICE Docs an. Standardmäßig ist
false
.
- METRICS_HOST: Definiert den StatsD-Listening-Host. Standardmäßig ist
localhost
.
- METRICS_PORT: Definiert den StatsD-Listening-Host. Standardmäßig ist
8125
.
- METRICS_PREFIX: Definiert das StatsD-Metrikenpräfix für Backend-Dienste. Standardmäßig ist
ds.
.
- LETS_ENCRYPT_DOMAIN: Definiert die Domain für das Let's Encrypt-Zertifikat.
- LETS_ENCRYPT_MAIL: Definiert die E-Mail-Adresse des Domainadministrators für das Let's Encrypt-Zertifikat.