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
Le SSL peut être utilisé dans le but de sécuriser l'accès à l'application et prévenir tout l'accès non autorisé. Des certificats SSL émis par une autorité de certification permettent d'instaurer la confiance via l'autorité de certification. Des certificats auto-signés fournissent aussi un niveau égal de fiabilité, s'ils sont correctement sécurisés par le client et on prend des mesures supplémentaires pour vérifier l'identité du votre site. Suivez les instructions ci-après pour réaliser ces procédures.
Pour sécuriser l'application avec SSL, il faut deux choses:
- Clé privée (.key)
- Certificat SSL (.crt)
Alors, il vous faut créer et installer les fichiers suivants:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
Lors de l'utilisation des certificats SSL émis par une autorité de certification (par exemple, Let's Encrypt), c'est l'autorité de certification qui fournit ces fichiers. Quand vous utilisez des certificats auto-signés, vous devez générer ces fichiers vous-même.
Faire passer ONLYOFFICE Docs en HTTPS en utilisant certbot
Le moyen le plus simple de faire passer ONLYOFFICE Docs en HTTPS est d'obtenir automatiquement le Certificat SSL de Let's Encrypt en utilisant certbot.
Lancez le conteneur Docker d'ONLYOFFICE Docs sur les ports 80 et 443 et saisissez vos propres valeurs pour les variables:
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
Où:
- LETS_ENCRYPT_DOMAIN - le nom de domaine à utiliser pour le certificat.
- LETS_ENCRYPT_MAIL - l'adresse email à utiliser lors de l'enregistrement et la récupération.
Le certificat letsencrypt.org émis par l'autorité de certification sera généré et installé automatiquement sur votre serveur. Désormais, votre ONLYOFFICE Docs doit être disponible sur https://yourdomain.com.
Générer des certificats auto-signés
La génération des certificats SSL auto-signés déroule en trois étapes simples.
ÉTAPE 1. Créer la clé privée du serveur
openssl genrsa -out onlyoffice.key 2048
ÉTAPE 2. Créer une demande de signature de certificat (CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr
ÉTAPE 3. Signer le certificat en utilisant la clé privée et CSR
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
Alors, vous avez généré un certificat SSL avec une période de validité de 365 jours.
Renforcer la sécurité de votre serveur
Dans cette section, vous trouverez les instruction pour renforcer la sécurité de votre serveur.
Pour ce faire, il faut générer de bons paramètres DHE.
openssl dhparam -out dhparam.pem 2048
Installer des Certificats SSL
Les fichiers à installer sur serveur onlyoffice sur quatre fichiers générés onlyoffice.key
, onlyoffice.crt
et dhparam.pem
. Vous n'avez pas besoin du CSR mais assurez-vous de faire une sauvegarde sécurisée (au cas où vous en auriez besoin).
Le chemin d'accès au certificat SSL recherché par application onlyoffice par défaut est /var/www/onlyoffice/Data/certs
, mais il est possible de le changer en utilisant des options de configuration SSL_KEY_PATH
, SSL_CERTIFICATE_PATH
et SSL_DHPARAM_PATH
.
Le chemin /var/www/onlyoffice/Data/
est le chemin au data store, ce qui signifie qu'il vous faut créer un dossier nommé certs dans /app/onlyoffice/DocumentServer/data/
et y déplacer des fichiers, ensuite modifiez la permission d'accès au fichier onlyoffice.key
en le rendant lisible que par le propriétaire comme mesure de sécurité.
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
Réinitialisez le conteneur Docker:
sudo docker restart {{DOCUMENT_SERVER_ID}}
Vous êtes sur le point de sécuriser notre application.
Paramètres de configuration disponibles
Veuillez vérifier des options de la commande docker run avec l'indicateur --env-file
où vous pouvez indiquer toutes les variables d'environnement dans un seul fichier. Cela vous aidera à éviter de coder une chaîne longue de la commande d'exécution docker.
Consultez ci-dessous la liste des paramètres que vous pouvez configurer à l'aide des variables d'environnement.
- ONLYOFFICE_HTTPS_HSTS_ENABLED: Une option de configuration avancée pour désactiver la configuration HSTS. Ne s'applique que lors de l'utilisation de SSL. La valeur par défaut est
true
.
- ONLYOFFICE_HTTPS_HSTS_MAXAGE: Une option de configuration avancée pour réglage du paramètre HSTS max-age dans la configuration NGINX vHost d'onlyoffice. Ne s'applique que lors de l'utilisation de SSL. Par défaut,
31536000
.
- SSL_CERTIFICATE_PATH: Le chemin au certificat SSL à utiliser. Par défaut,
/var/www/onlyoffice/Data/certs/tls.crt
.
- SSL_KEY_PATH: Le chemin à la clé privé du certificat SSL. Par défaut,
/var/www/onlyoffice/Data/certs/tls.key
.
- SSL_DHPARAM_PATH: Le chemin au paramètre Diffie-Hellman. Par défaut,
/var/www/onlyoffice/Data/certs/dhparam.pem
.
- SSL_VERIFY_CLIENT: Activation de la vérification des certificats du client en utilisant
CA_CERTIFICATES_PATH file
. La valeur par défaut est false
.
- DB_TYPE: Le type de base de données. Les valeurs prises en charge
postgres
, mariadb
ou mysql
. La valeur par défaut est postgres
.
- DB_HOST: L'adresse IP ou le nom du hôte où le serveur est en cours d'exécution.
- DB_PORT: Le numéro du port utilisé pour accéder à la base de données.
- DB_NAME: Le nom de la base de données qui sera créée lors du lancement de l'image.
- DB_USER: Le nouveau nom du utilisateur qui possède tous les droits au niveau d'une base de données.
- DB_PWD: Le mot de passe défini sur le compte de la base de données.
- AMQP_URI: AMQP URI permet de vous connecter au serveur de l'agent de messages.
- AMQP_TYPE: Le type de l'agent de messages. Les valeurs prises en charge
rabbitmq
ou activemq
. La valeur par défaut est rabbitmq
.
- REDIS_SERVER_HOST: L'adresse IP ou le nom du hôte où le serveur Redis est en cours d'exécution.
- REDIS_SERVER_PORT: Le numéro du port utilisé pour accéder au serveur Redis.
- NGINX_WORKER_PROCESSES: Définit le nombre de processus actifs NGINX.
- NGINX_WORKER_CONNECTIONS: Définit le nombre maximum de connexions simultanées auxquelles peut accéder un processus NGINX.
- SECURE_LINK_SECRET: Définit la clé secrète pour la directive de configuration nginx secure_link_md5. La valeur par défaut est
chaîne aléatoire
.
- JWT_ENABLED: Indique l'activation de la validation du jeton JSON par ONLYOFFICE Docs. La valeur par défaut est
true
.
- JWT_SECRET: Définit le clé secret pour la validation du jeton JSON dans la demande à ONLYOFFICE Docs. La valeur par défaut est une valeur aléatoire.
- JWT_HEADER: Définit l'en-tête HTTP à utiliser pour envoyer le jeton JSON. La valeur par défaut est
Authentification
.
- JWT_IN_BODY: Indique l'activation de la validation du jeton dans le corps de la demande à ONLYOFFICE Docs. La valeur par défaut est
false
.
- WOPI_ENABLED: Indique si le gestionnaire wopi est activé. La valeur par défaut est
false
.
- USE_UNAUTHORIZED_STORAGE: Indiquez
true
si vous utilisez des certificats auto-signés pour votre serveur de stockage, par exemple, Nextcloud. La valeur par défaut est false
.
- GENERATE_FONTS: Si
true
, régénère la liste et les miniatures des polices etc. à chaque démarrage. La valeur par défaut est true
.
- METRICS_ENABLED: Indique l'activation de StatsD pour ONLYOFFICE Docs. La valeur par défaut est
false
.
- METRICS_HOST: Définit l'hôte d'écoute StatsD. La valeur par défaut est
localhost
.
- METRICS_PORT: Définit le port d'écoute StatsD. La valeur par défaut est
8125
.
- METRICS_PREFIX: Définit le préfixe métrique StatsD pour les services d'administration. La valeur par défaut est
ds.
.
- LETS_ENCRYPT_DOMAIN: Définit le domaine pour le certificat Let's Encrypt.
- LETS_ENCRYPT_MAIL: Définit l'adresse email de l'administrateur du domaine pour le certificat Let's Encrypt.