GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer Apache Tomcat 10 avec Nginx sur Rocky Linux 8

Tomcat est un serveur Web open source pour les applications basées sur Java. Il est utilisé pour déployer des applications Java Servlet et JSP. Les servlets Java sont de petits programmes définissant la manière dont un serveur gère les requêtes et les réponses. Tomcat agit comme une implémentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket.

Il existe plusieurs versions de Tomcat disponibles. Nous aborderons l'installation de Tomcat 10 pour notre tutoriel. Si vous souhaitez installer Tomcat 9, les instructions seront les mêmes. S'il y a des changements, ils seront spécifiés dans le tutoriel.

Pour notre tutoriel, nous allons installer Tomcat 10 avec le serveur Nginx pour agir en tant que proxy inverse et le protéger à l'aide de SSL. Il existe une version Tomcat 10.1.x qui est la dernière version alpha de Tomcat, mais nous ne l'installerons pas.

Prérequis

  • Un serveur exécutant Rocky Linux 8.5

  • Un utilisateur non sudo avec des privilèges de superutilisateur.

  • Assurez-vous que tout est mis à jour.

    $ sudo dnf update
    
  • Paquets requis pour l'installation.

    $ sudo dnf install wget tar
    

Étape 1 - Installer Java

Tomcat 9 et 10 nécessitent Java 8 et versions ultérieures. Nous allons installer OpenJDK 11, l'implémentation open source de la plate-forme Java.

Exécutez la commande suivante pour installer OpenJDK.

$ sudo dnf install java-11-openjdk-devel

Vérifiez l'installation.

$ java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Étape 2 - Créer un utilisateur système

Nous allons créer un nouvel utilisateur système pour minimiser tout risque de sécurité en exécutant Tomcat en tant qu'utilisateur root. Pour le nouvel utilisateur, nous allons définir /opt/tomcat comme répertoire personnel.

Exécutez la commande suivante pour créer un nouvel utilisateur système pour Tomcat.

$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Étape 3 - Télécharger Tomcat

La dernière version de Tomcat v10 peut être téléchargée depuis sa page de téléchargement. Au moment de la rédaction de ce didacticiel, la v10.0.14 est la dernière version disponible. Vérifiez la dernière version avant de télécharger Tomcat.

Utilisez wget pour télécharger Tomcat.

$ VERSION=10.0.14
$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

Extraire le fichier dans le /opt/tomcat répertoire.

$ sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Créez un lien symbolique vers la dernière version de Tomcat qui pointe vers le répertoire d'installation de Tomcat.

$ sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

Modifiez la propriété du répertoire pour l'utilisateur créé précédemment.

$ sudo chown -R tomcat:tomcat /opt/tomcat

Étape 4 - Créer un fichier d'unité Systemd

L'étape suivante consiste à créer un fichier de service pour le serveur Tomcat afin qu'il puisse être démarré automatiquement.

Créez et ouvrez le fichier /etc/systemd/system/tomcat.service pour l'édition.

$ sudo nano /etc/systemd/system/tomcat.service

Collez le code suivant.

[Unit]
Description=Apache Tomcat 10 Servlet container
Wants=network.target
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
Restart=always

[Install]
WantedBy=multi-user.target

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous êtes invité à enregistrer.

Étape 5 - Démarrer et activer le service Tomcat

Rechargez le démon de service pour activer le service Tomcat.

$ sudo systemctl daemon-reload

Activez et démarrez le service Tomcat.

$ sudo systemctl enable tomcat --now

Vérifiez l'état du service.

$ sudo systemctl status tomcat
? tomcat.service - Apache Tomcat 10 Servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-12-17 15:54:28 UTC; 24s ago
  Process: 86219 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 86226 (java)
    Tasks: 19 (limit: 11411)
   Memory: 132.7M
   CGroup: /system.slice/tomcat.service
           ??86226 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties>

Dec 17 15:54:27 howtoforge systemd[1]: Starting Apache Tomcat 10 Servlet container...
Dec 17 15:54:28 howtoforge systemd[1]: Started Apache Tomcat 10 Servlet container.

Étape 6 - Configurer le pare-feu

Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.

$ sudo firewall-cmd --state
running

Autoriser les ports HTTP et HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Rechargez le pare-feu pour activer les modifications.

$ sudo firewall-cmd --reload

Étape 7 - Configurer l'interface de gestion Web Tomcat

L'interface de gestion Web ne sera accessible qu'une fois que nous aurons créé un identifiant utilisateur pour celle-ci.

Les utilisateurs et les rôles Tomcat sont définis dans le /opt/tomcat/latest/conf/tomcat-users.xml dossier. Ouvrez le fichier pour le modifier.

$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Ajoutez les lignes suivantes avant le </tomcat-users doubler. Remplacez le nom d'utilisateur et le mot de passe par vos identifiants.

Choisissez des informations d'identification différentes pour les portails Manager et Administrator Tomcat.

<tomcat-users>
<!--
    Comments
-->
<role rolename="manager-gui"/>
    <user username="manager" password="managerpassword" roles="manager-gui" />
<role rolename="admin-gui"/>
	<user username="admin" password="adminpassword" roles="admin-gui"/>
</tomcat-users>

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous êtes invité à enregistrer.

Par défaut, l'interface Tomcat n'est accessible qu'à partir de l'hôte local. Si vous avez besoin d'y accéder de n'importe où, vous devez le configurer.

Ouvrez le /opt/tomcat/latest/webapps/manager/META-INF/context.xml pour l'édition.

$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml

Supprimez les lignes suivantes ou commentez-les comme spécifié ci-dessous en les joignant à <!-- et --> .

<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

Autoriser l'accès à partir de n'importe quelle adresse IP est un risque pour la sécurité. Vous pouvez le restreindre en n'autorisant l'accès qu'à partir de votre adresse IP publique. Si votre adresse IP publique est 22.22.22.22 , puis modifiez la ligne comme suit.

 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|22.22.22.22" />

La liste des adresses IP autorisées est séparée par une barre verticale (| ). Vous pouvez soit ajouter des adresses IP uniques, soit utiliser une expression régulière.

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous êtes invité à enregistrer.

Effectuez les mêmes modifications sur le fichier /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml aussi.

Une fois terminé, redémarrez le serveur Tomcat.

$ sudo systemctl restart tomcat

Étape 8 - Installer SSL

Pour installer un certificat SSL avec Let's Encrypt, nous devons installer l'outil Certbot.

Tout d'abord, vous devez télécharger et installer le référentiel EPEL.

$ sudo dnf install epel-release

Exécutez les commandes suivantes pour installer Certbot.

$ sudo dnf install certbot

Générez le certificat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d tomcat.example.com

La commande ci-dessus téléchargera un certificat dans /etc/letsencrypt/live/tomcat.example.com répertoire sur votre serveur.

Générer un groupe Diffie-Hellman certificat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Créez un répertoire racine Web de défi pour le renouvellement automatique de Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Créez une tâche Cron pour renouveler le SSL. Il s'exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier /etc/cron.daily/certbot-renew et ouvrez-le pour le modifier.

$ sudo nano /etc/cron.daily/certbot-renew

Collez le code suivant.

#!/bin/sh
certbot renew --cert-name tomcat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Étape 9 - Installer Nginx

Rocky Linux 8.5 est livré avec la dernière version stable de Nginx. Installez-le à l'aide de la commande suivante.

$ sudo dnf module install nginx:1.20

Vérifiez l'installation.

$ nginx -v
nginx version: nginx/1.20.1

Activez et démarrez le service Nginx.

$ sudo systemctl enable nginx --now

Créez et ouvrez le fichier /etc/nginx/conf.d/tomcat.conf pour l'édition.

$ sudo nano /etc/nginx/conf.d/tomcat.conf

Collez-y le code suivant.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  tomcat.example.com;

    access_log  /var/log/nginx/tomcat.access.log;
    error_log   /var/log/nginx/tomcat.error.log;
    
    # SSL
    ssl_certificate      /etc/letsencrypt/live/tomcat.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/tomcat.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/tomcat.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;

    location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  tomcat.example.com;
    return 301   https://$host$request_uri;
}

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 l'édition.

$ 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

Étape 10 - Exécuter TomCat

Lancez https://tomcat.example.com dans votre navigateur, et il ouvrira l'écran suivant.

Vous pouvez désormais accéder aux pages Server Status, Manager App et Host Manager à l'aide des identifiants de connexion que nous avons configurés à l'étape 7.

Conclusion

Ceci conclut notre didacticiel sur l'installation et la configuration de Tomcat Server sur un serveur basé sur Rocky Linux 8.5 et son service via le proxy inverse Nginx, et l'utilisation de SSL pour le protéger. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Rocky Linux
  1. Comment installer Apache Tomcat 9 avec Nginx Proxy sur Debian 10

  2. Comment installer WordPress avec LEMP (Nginx, MariaDB et PHP) sur Rocky Linux 8 ?

  3. Comment installer Apache Maven sur Rocky Linux/Alma Linux 8

  4. Comment installer ModSecurity avec Nginx sur Rocky Linux 8

  5. Comment installer Apache Kafka sur Rocky Linux 8

Comment installer Apache Tomcat sur Rocky Linux 8

Comment installer le framework Sails.js avec Nginx sur Rocky Linux 8

Comment installer Apache Tomcat 10 sur Ubuntu 20.04 avec Nginx

Comment installer Apache Tomcat 10 sur Ubuntu 22.04 avec Nginx

Comment installer Nginx sur Rocky Linux 8

Comment installer Nginx sur Rocky Linux 9