Comment installer le logiciel de gestion de projet Redmine sur Debian 11
Redmine est un logiciel de gestion de projet et un outil de suivi des problèmes gratuit et open source. Il est écrit à l'aide du framework Ruby on Rails et peut être intégré à divers systèmes de contrôle de version. Il comprend un navigateur de référentiel et un visualiseur de différences. Il peut être utilisé pour gérer les fonctionnalités des projets par wikis et forums de projet, le suivi du temps et le contrôle d'accès basé sur les rôles. Il est multiplateforme et multi-bases de données et prend en charge 49 langues.
Dans ce tutoriel, vous apprendrez comment installer Redmine sur un serveur Debian 11.
Conditions préalables
Un serveur exécutant Debian 11.
Un utilisateur non sudo avec les privilèges root.
Le pare-feu simple (UFW) est activé et en cours d'exécution.
Peu de packages dont votre système a besoin.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release unzip debian-archive-keyring -y
Certains de ces packages sont peut-être déjà installés sur votre système.
Assurez-vous que tout est mis à jour.
$ sudo apt update && sudo apt upgrade
Étape 1 - Configurer le pare-feu
La première étape avant d'installer un package consiste à configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.
Vérifiez l'état du pare-feu.
$ sudo ufw status
Vous devriez voir quelque chose comme ce qui suit.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Autoriser les ports HTTP et HTTPs. Ouvrez également le port 3000 pour Redmine.
$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow 3000
Vérifiez à nouveau l'état pour confirmer.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
3000 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
3000 (v6) ALLOW Anywhere (v6)
Étape 2 - Installer le serveur Apache
Nous utiliserons le serveur Web Apache pour déployer Redmine. Installez Apache à l'aide de la commande suivante.
$ sudo apt install apache2
Vérifiez l'état du service Apache.
$ sudo systemctl status apache2
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-03-04 13:28:57 UTC; 41s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 3478 (apache2)
Tasks: 55 (limit: 1129)
Memory: 9.7M
CPU: 27ms
CGroup: /system.slice/apache2.service
??3478 /usr/sbin/apache2 -k start
??3481 /usr/sbin/apache2 -k start
??3482 /usr/sbin/apache2 -k start
Mar 04 13:28:56 redmine systemd[1]: Starting The Apache HTTP Server...
Mar 04 13:28:57 redmine systemd[1]: Started The Apache HTTP Server.
Étape 3 - Installer et configurer le serveur MySQL
Nous utiliserons la base de données MySQL pour stocker les données. Debian n'a plus MySQL dans ses dépôts. Nous utiliserons donc le référentiel officiel MySQL pour l'installation.
Importez la clé MySQL GPG.
$ curl https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | gpg --dearmor | sudo tee /usr/share/keyrings/mysql.gpg >/dev/null
Créez un fichier de référentiel MySQL.
$ echo "deb [signed-by=/usr/share/keyrings/mysql.gpg arch=amd64] http://repo.mysql.com/apt/debian/ `lsb_release -cs` mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list
Mettez à jour la liste des référentiels système.
$ sudo apt update
Installez MySQL.
$ sudo apt install mysql-server
Vous serez invité à définir un mot de passe root. Choisissez un mot de passe fort. Ensuite, vous serez invité à choisir entre le nouveau cryptage MySQL caching_sha2_password
ou l'ancien cryptage mysql_native_password
. Choisissez le plus récent car Redmine le prend en charge. Sélectionnez OK pour continuer et terminer l'installation.
Vérifiez l'état du service MySQL.
$ sudo systemctl status mysql
? mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-03-05 08:18:15 UTC; 4h 14min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 10500 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 1129)
Memory: 391.5M
CPU: 1min 49.904s
CGroup: /system.slice/mysql.service
??10500 /usr/sbin/mysqld
Mar 05 08:18:14 redmine systemd[1]: Starting MySQL Community Server...
Mar 05 08:18:15 redmine systemd[1]: Started MySQL Community Server.
Installation sécurisée de MySQL.
$ sudo mysql_secure_installation
Tout d’abord, il vous sera demandé le mot de passe root. Entrez le mot de passe que vous avez choisi lors de l'installation. Ensuite, il vous sera demandé si vous souhaitez configurer le plugin Validate Password, que vous pouvez utiliser pour tester la force de votre mot de passe MySQL. Choisissez Y
pour continuer. Il vous sera demandé de choisir le niveau de validation du mot de passe à l'étape suivante. Choisissez 2
qui est le niveau le plus fort et nécessitera que votre mot de passe comporte au moins huit caractères et comprenne un mélange de caractères majuscules, minuscules, numériques et spéciaux.
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
La force de votre mot de passe root vous sera affichée et il vous sera demandé si vous souhaitez le modifier. Entrez N
si vous ne souhaitez pas modifier et continuez. Si vous souhaitez le modifier, vous pouvez le faire maintenant en saisissant Y
et en choisissant un mot de passe répondant aux exigences ci-dessus.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
Appuyez sur Y
puis sur la touche ENTER
pour toutes les invites suivantes pour supprimer les utilisateurs anonymes et la base de données de test, désactiver les connexions root et charger les règles nouvellement définies.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Entrez dans le shell MySQL. Entrez votre mot de passe root pour continuer.
$ mysql -u root -p
Créez un utilisateur redmine
. Assurez-vous que le mot de passe répond aux exigences définies auparavant.
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Your_password2';
Créez une base de données redmine
.
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
Accordez les privilèges utilisateur à la base de données redmine
.
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Quittez le Shell.
mysql> exit
Étape 4 - Installez Ruby et d'autres éléments requis
La dernière version de Redmine est compatible avec Ruby 3.1. Debian est livré avec Ruby 2.7, nous devrons donc installer la dernière version à l'aide de Ruby Version Manager (RVM).
Installez la clé GPG de RVM.
$ gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Installez RVM.
$ \curl -sSL https://get.rvm.io | bash -s stable
Sourcez les scripts RVM.
$ source ~/.rvm/scripts/rvm
Installez Ruby. Vous pouvez consulter la dernière version sur le site Web Ruby. Au moment de la rédaction de ce didacticiel, Ruby 3.1.3 est la dernière version de la série.
$ rvm install ruby-3.1.3
Vérifiez l'installation.
$ ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
Installez tous les packages restants requis par Redmine.
$ sudo apt install libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev libmysqlclient-dev apache2-dev build-essential libcurl4-openssl-dev
Étape 5 - Installer Redmine
Visitez la page de téléchargement de Redmine et vérifiez la dernière version stable disponible. Au moment de la rédaction de ce tutoriel, la dernière version disponible est la 5.0.5.
Utilisez wget
pour télécharger Redmine.
$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz
Vous pourriez obtenir l'erreur suivante lors du téléchargement de l'archive, car l'un des certificats racine du site Web a expiré.
WARNING: The certificate of ‘www.redmine.org’ is not trusted.
WARNING: The certificate of ‘www.redmine.org’ doesn't have a known issuer.
WARNING: The certificate of ‘www.redmine.org’ has expired.
Si vous obtenez cette erreur, exécutez plutôt la commande suivante pour télécharger.
$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz --no-check-certificate
Extrayez et déplacez les fichiers vers le répertoire /var/www/redmine
.
$ tar xfz redmine-5.0.5.tar.gz
$ sudo mv redmine-5.0.5 /var/www/redmine
Passez au répertoire /var/www/redmine
.
$ cd /var/www/redmine
Vous obtiendrez le résultat suivant et un avertissement concernant la version de Ruby. Vous pouvez l’ignorer en toute sécurité.
RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too,
you can ignore these warnings with 'rvm rvmrc warning ignore /var/www/redmine/Gemfile'.
To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'.
Unknown ruby interpreter version (do not know how to handle): >=2.5.0,<3.2.0.
Créez des fichiers de configuration Redmine à l'aide des exemples de fichiers fournis.
$ cp config/configuration.yml.example config/configuration.yml
$ cp config/database.yml.example config/database.yml
$ cp public/dispatch.fcgi.example public/dispatch.fcgi
Ouvrez le fichier database.yml
pour le modifier.
$ nano config/database.yml
Recherchez et configurez les paramètres de votre base de données dans la section suivante.
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Your_password2"
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Installez le bundler pour gérer les dépendances des gemmes Ruby.
$ gem install bundler
Définissez l'environnement pour l'installation des dépendances de gem.
$ bundle config set --local without 'development test'
Installez les dépendances de gem.
$ bundle install
Si vous rencontrez des problèmes avec les versions de gem, utilisez la commande suivante pour restaurer.
$ gem pristine --all
Ajoutez une dépendance webrick.
$ bundle add webrick
Générez une clé secrète aléatoire pour empêcher la falsification des cookies destinés au stockage des données de session.
$ bundle exec rake generate_secret_token
Créez la structure de la base de données.
$ RAILS_ENV=production bundle exec rake db:migrate
Insérez les données dans la base de données MySQL.
$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Créez les répertoires nécessaires et définissez les autorisations sur les fichiers.
$ mkdir -p tmp/pdf
$ mkdir -p public/plugin_assets
$ chown -R $USER:$USER files log tmp public/plugin_assets
$ chmod -R 755 /var/www/redmine/
Exécutez la commande suivante pour démarrer une instance de serveur Rails.
$ bundle exec rails server -u webrick -e production
=> Booting WEBrick
=> Rails 6.1.7.2 application starting in production http://0.0.0.0:3000
=> Run `bin/rails server --help` for more startup options
[2023-03-06 09:12:11] INFO WEBrick 1.7.0
[2023-03-06 09:12:11] INFO ruby 3.1.3 (2022-11-24) [x86_64-linux]
[2023-03-06 09:12:11] INFO WEBrick::HTTPServer#start: pid=34652 port=3000
Ouvrez l'URL http://
pour obtenir l'écran de connexion Redmine.
Saisissez les informations d'identification par défaut (admin/admin) pour vous connecter. Il vous sera demandé de modifier le mot de passe.
Ensuite, vous serez redirigé vers la page Mon compte.
Redmine a été installé avec succès.
Ensuite, appuyez sur CTRL+C sur le terminal pour arrêter le serveur.
Étape 6 - Installer Phusion Passenger
Phusion Passenger est un serveur d'applications Ruby qui nous permet de servir Redmine via un serveur tiers. Dans notre cas, nous utiliserons Apache.
Installez Passager.
$ gem install passenger
Installez le module Passenger pour le serveur Apache.
$ passenger-install-apache2-module
Vous serez accueilli avec un message de bienvenue. Appuyez sur Entrée pour continuer.
Welcome to the Phusion Passenger Apache 2 module installer, v6.0.17.
This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.
Here's what you can expect from the installation process:
1. The Apache 2 module will be installed for you.
2. You'll learn how to configure Apache.
3. You'll learn how to deploy a Ruby on Rails application.
Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.
Press Enter to continue, or Ctrl-C to abort.
--------------------------------------------
Ensuite, il vous sera demandé la langue. Ruby est sélectionné par défaut, il suffit donc d'appuyer sur Entrée pour continuer.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
? ? Ruby
? Python
? Node.js
? Meteor
--------------------------------------------
L’ensemble du processus prendra environ 10 à 15 minutes. Si vous obtenez une erreur comme celle-ci, cela est probablement dû à une RAM faible. Vous devez soit augmenter la RAM sur votre serveur, soit installer un espace de swap.
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
rake aborted!
Une fois le processus terminé, vous recevrez le message suivant.
--------------------------------------------
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
N'appuyez pas encore sur Entrée. Ouvrez une nouvelle session sur votre serveur en tant qu'utilisateur actuel et effectuez les configurations suivantes.
Étape 7 - Configurer le serveur Apache
Créez un fichier de configuration de module Apache pour Phusion Passenger.
$ sudo nano /etc/apache2/conf-available/00-passenger.conf
Collez le code que vous avez obtenu à la fin de l'installation du passager.
LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
PassengerDefaultRuby /home/navjot /.rvm/gems/ruby-3.1.3/wrappers/ruby
</IfModule>
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Créez un autre fichier de configuration Apache pour le site Redmine.
$ sudo nano /etc/apache2/sites-available/redmine.conf
Collez-y le code suivant.
Listen 3000
<IfModule mod_passenger.c>
PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby
</IfModule>
<VirtualHost *:3000>
ServerName redmine.example.com
DocumentRoot "/var/www/redmine/public"
CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
LogLevel warn
<Directory "/var/www/redmine/public">
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
</VirtualHost>
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Ouvrez le fichier de configuration principal d'Apache /etc/httpd/conf/httpd.conf
pour le modifier.
$ sudo nano /etc/httpd/conf/httpd.conf
Recherchez la variable ServerName
et décommentez en supprimant le hachage (#) devant elle et en définissant sa valeur comme suit.
ServerName localhost
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Activez le site Redmine et la configuration Phusion Passenger.
$ sudo a2ensite redmine.conf
$ sudo a2enconf 00-passenger.conf
Vérifiez votre configuration Apache.
$ sudo apachectl configtest
Syntax OK
Revenez en arrière et appuyez sur Entrée pour continuer votre installation Passager. Il effectuera quelques vérifications et vous devriez voir le message suivant une fois terminé.
Deploying a web application
To learn how to deploy a web app on Passenger, please follow the deployment
guide:
https://www.phusionpassenger.com/library/deploy/apache/deploy/
Enjoy Phusion Passenger, a product of Phusion® (www.phusion.nl) :-)
https://www.phusionpassenger.com
Passenger® is a registered trademark of Phusion Holding B.V.
Redémarrez votre serveur Apache.
$ sudo systemctl restart apache2
Votre site Web devrait être disponible à l'adresse http://redmine.example.com:3000
.
Ce n'est pas le moyen idéal pour accéder à Redmine. Il est toujours servi via le protocole HTTP non sécurisé et utilise un numéro de port. Nous installerons Nginx pour agir comme un proxy inverse et servirons Redmine en utilisant le protocole HTTPS pour améliorer cela. Avant de passer à l'installation et à la configuration de Nginx, nous devons configurer le certificat SSL.
Étape 8 - Installer Nginx
Debian 11 est livré avec une ancienne version de Nginx. Pour installer la dernière version, vous devez télécharger le référentiel officiel Nginx.
Importez la clé de signature de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ajoutez le référentiel pour la version stable de Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mettez à jour les référentiels système.
$ sudo apt update
Installez Nginx.
$ sudo apt install nginx
Vérifiez l'installation. Debian nécessite que la commande suivante soit exécutée en utilisant sudo
.
$ sudo nginx -v
nginx version: nginx/1.22.1
Changer le port d'écoute Apache
Pour éviter tout conflit avec Nginx, nous devons modifier le port par défaut qu'Apache écoute. Ouvrez le fichier /etc/apache2/ports.conf
pour le modifier.
$ sudo nano /etc/apache2/ports.conf
Modifiez le port de 80 à 8080 comme suit.
Listen 8080
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Désactivez la configuration du site par défaut.
$ sudo a2dissite 000-default.conf
Redémarrez Apache.
$ sudo systemctl restart apache2
Démarrez le serveur Nginx.
$ sudo systemctl start nginx
Vérifiez l'état du serveur Nginx.
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-03-06 10:29:44 UTC; 6s ago
Docs: https://nginx.org/en/docs/
Process: 53531 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 53532 (nginx)
Tasks: 2 (limit: 1129)
Memory: 1.7M
CPU: 8ms
CGroup: /system.slice/nginx.service
??53532 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
??53533 nginx: worker process
Étape 9 - Installer SSL
Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot à l'aide du référentiel Debian, soit récupérer la dernière version à l'aide de l'outil Snapd. Nous utiliserons la version Snapd.
Debian n'est pas fourni avec Snapd installé. Par conséquent, installez Snapd.
$ sudo apt install snapd
Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.
$ sudo snap install core && sudo snap refresh core
Installez Certbot.
$ sudo snap install --classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin
.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Générez le certificat SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email -d redmine.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/redmine.example.com
sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Vérifiez le service de planification de renouvellement Certbot.
$ sudo systemctl list-timers
Vous trouverez snap.certbot.renew.service
comme l'un des services dont l'exécution est planifiée.
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2023-03-06 11:37:00 UTC 1h 2min left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Mon 2023-03-06 13:37:15 UTC 3h 2min left Sun 2023-03-05 13:37:15 UTC 20h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Tue 2023-03-07 00:00:00 UTC 13h left Mon 2023-03-06 00:00:15 UTC 10h ago logrotate.timer logrotate.service
Effectuez un essai à sec du processus pour vérifier si le renouvellement SSL fonctionne correctement.
$ sudo certbot renew --dry-run
Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.
Étape 10 - Configurer Nginx en tant que proxy inverse
Créez et ouvrez le fichier /etc/nginx/conf.d/redmine.conf
pour le modifier.
$ sudo nano /etc/nginx/conf.d/redmine.conf
Collez-y le code suivant.
# Redirect all non-encrypted to encrypted
server {
listen 80;
server_name redmine.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name redmine.example.com;
ssl_certificate /etc/letsencrypt/live/redmine.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/redmine.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/redmine.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
access_log /var/log/nginx/redmine.access.log main;
error_log /var/log/nginx/redmine.error.log;
location / {
proxy_pass http://localhost:3000;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.
Ouvrez le fichier /etc/nginx/nginx.conf
pour le modifier.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Vérifiez la syntaxe du fichier de configuration Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrez le service Nginx pour activer la nouvelle configuration.
$ sudo systemctl restart nginx
Votre application Redmine doit être accessible sur https://redmine.example.com
.
Vous devez supprimer l'entrée du port 3000 dans le pare-feu car elle n'est plus nécessaire.
$ sudo ufw delete allow 3000
Conclusion
Ceci conclut notre tutoriel dans lequel vous avez appris à installer Redmine Project Manager sur un serveur Debian 11. Vous avez également appris à servir l'application Redmine via Nginx en utilisant le protocole HTTPS. Si vous avez des questions, postez-les dans les commentaires ci-dessous.