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
SSL peut être utilisé dans le but de sécuriser l'accès à l'application et de prévenir tout accès non autorisé. Les certificats SSL émis par une autorité de certification permettent d'instaurer la confiance via l'autorité de certification. Les certificats auto-signés fournissent aussi un niveau égal de fiabilité, s'ils sont correctement sécurisés par le client qui prend des mesures supplémentaires pour vérifier l'identité de votre site. Suivez les instructions ci-dessous pour réaliser ces procédures.
Pour sécuriser l'application avec SSL, vous avez besoin de deux choses :
- Clé privée (.key)
- Certificat SSL (.crt)
Alors, il 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 un certificat SSL Let's Encrypt en utilisant certbot.
Lancez le conteneur Docker de 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 - nom de domaine à utiliser pour le certificat.
- LETS_ENCRYPT_MAIL - adresse e-mail à utiliser lors de l'enregistrement et la récupération.
Le certificat signé par l'autorité de certification letsencrypt.org sera généré automatiquement et installé sur votre serveur. Maintenant, 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 se déroule en trois étapes simples
ETAPE 1: Créez une clé privée du serveur
openssl genrsa -out onlyoffice.key 2048
ETAPE 2: Créez une demande de signature de certificat (CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr
ETAPE 3: Signez 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 valide pendant 365 jours.
Renforcer la sécurité de votre serveur
Dans cette section vous trouverez les instructions comment renforcer la sécurité de votre serveur.
Pour ce faire, il faut générer des paramètres DHE plus puissants.
openssl dhparam -out dhparam.pem 2048
Installer des certificats SSL
Sur quatre fichiers générés les fichiers à installer sur le serveur onlyoffice sont onlyoffice.key
, onlyoffice.crt
et dhparam.pem
. Le fichier CSR n'est pas nécessaire, par contre assurez-vous de faire une sauvegarde sécurisée (si vous en auriez besoin).
Le chemin d'accès au certificat SSL recherché par l'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 stockage de données, ce qui signifie qu'il vous faut créer un dossier nommé certs dans /app/onlyoffice/DocumentServer/data/
et y copier les fichiers, ensuite attribuer des droits de lecture au propriétaire seul sur le fichier onlyoffice.key
en tant que 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 les options de la commande docker run avec l'indicateur --env-file
où vous pouvez spécifier toutes les variables d'environnement dans un seul fichier. Cela vous aidera à éviter de coder une chaîne longue de commande docker run.
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. Par défaut,
true
.
- ONLYOFFICE_HTTPS_HSTS_MAXAGE: Une option de configuration avancée pour réglage du paramètre HSTS max-age dans la configuration du hôte virtuel NGINX de 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ée 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 client en utilisant
CA_CERTIFICATES_PATH file
. Par défaut, false
.
- DB_TYPE: Type de base de données. Les valeurs prises en charge sont
postgres
, mariadb
ou mysql
. Par défaut, postgres
.
- DB_HOST: L'adresse IP ou le nom du hôte où le serveur de base de données 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 nom d'un nouvel utilisateur avec les droits de superutilisateur sur le compte de la 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 courtier de messages.
- AMQP_TYPE: Type de courtier de messages. Les valeurs prises en charge sont
rabbitmq
ou activemq
. Par défaut, 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 de NGINX.
- NGINX_WORKER_CONNECTIONS: Définit le nombre maximum de connexions simultanées auxquelles peut accéder un processus actif de NGINX.
- JWT_ENABLED: Indique l'activation de la validation du jeton JSON par ONLYOFFICE Docs. Par défaut,
true
.
- JWT_SECRET: Définit la clé secrète utilisée pour valider le jeton JSON sur la demande à la connexion de ONLYOFFICE Docs. Par défaut,
secret
.
- JWT_HEADER: Définit l'en-tête HTTP à utiliser pour envoyer le jeton JSON. Par défaut,
Authorization
.
- JWT_IN_BODY: Indique l'activation de la validation du jeton dans le corps de la demande à la connexion de ONLYOFFICE Docs. Par défaut,
false
.
- USE_UNAUTHORIZED_STORAGE: Indiquez
true
si vous utilisez des certificats auto-signés pour votre serveur de stockage, par exemple, Nextcloud. Par défaut, false
.
- GENERATE_FONTS: Si
true
, régénère la liste et les miniatures des polices etc. à chaque démarrage. Par défaut, true
.
- METRICS_ENABLED: Indique l'activation de StatsD pour ONLYOFFICE Docs. Par défaut,
false
.
- METRICS_HOST: Définit l'hôte StatsD. Par défaut,
localhost
.
- METRICS_PORT: Définit le port StatsD. Par défaut,
8125
.
- METRICS_PREFIX: Définit le préfixe métrique StatsD pour les services principaux. Par défaut,
ds.
.
- LETS_ENCRYPT_DOMAIN: Définit le domaine pour le certificat Let's Encrypt.
- LETS_ENCRYPT_MAIL: Définit l'adresse e-mail de l'administrateur du domaine pour le certificat Let's Encrypt.