English English French French Spanish Spanish German German
Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment implémenter HTTP2 dans Tomcat?

matou
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Un guide étape par étape pour configurer HTTP2 dans Apache Tomcat

La prise en charge complète de HTTP2 est ajoutée à la dernière version de Tomcat 9.x. HTTP / 2 est rapide, beaucoup plus rapide que HTTP / 1.1.

Si vous diffusez directement le contenu au navigateur (sans passer par un serveur Web) depuis Tomcat, la mise en œuvre de HTTP / 2 peut réduire considérablement le temps de chargement de l'application et améliorer globalement les performances. Il est recommandé de tester cela dans un environnement hors production pour s'assurer que l'application se comporte comme prévu.

Lisez ceci si vous cherchez à activer dans un serveur Web comme Apache ou Nginx.

Comment activer HTTP / 2 dans Apache et Nginx?

Pre-requisite

Tomcat doit être sécurisé avec un certificat SSL / TLS avant d'implémenter HTTP2. Si vous avez besoin d'aide pour la mise en œuvre, consultez ce guide.

Comment implémenter SSL dans Apache Tomcat?

Implementing HTTP/2 on Tomcat

Notes: Effectuez une sauvegarde des fichiers de configuration avant la modification afin de pouvoir restaurer en cas de problème.

  • Connectez-vous au serveur Tomcat et accédez au dossier d'installation
  • Cliquez sur conf dossier
  • Modifiez le fichier server.xml en utilisant vi ou votre éditeur préféré
  • Ajoutez ce qui suit dans le connecteur SSL
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />

Dans l'ensemble, cela devrait ressembler à ci-dessous.

<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/key.pem"
                         certificateFile="conf/cert.pem"
                         certificateChainFile="conf/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

Ci-dessus se trouve la configuration de mon laboratoire, donc si vous la copiez, n'oubliez pas d'ajuster la configuration en fonction des exigences de votre environnement - en particulier le port si vous utilisez un chemin personnalisé et un certificat.

  • Redémarrez l'instance Tomcat en allant dans le dossier bin et exécutez les scripts suivants
./shutdown.sh
./startup.sh
  • Vérifiez la catalina.out log, et vous devriez voir la confirmation suivante qui est configurée pour prendre en charge h2
24-Feb-2019 19:43:47.559 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["https-openssl-apr-443"] connector has been configured to support negotiation to [h2] via ALPN

Cela signifie que Tomcat est prêt à servir les requêtes via le protocole HTTP2.

Testing if Tomcat is serving over H2

Comment savoir si cela fonctionne comme prévu?

Il existe plusieurs façons de tester cela.

Utilisation de Chrome

Utile pour tester les applications Intranet.

  • Lancer Google Chrome
  • Ouvrez les outils de développement en appuyant sur F12
  • Allez dans l'onglet réseau
  • Accédez à votre application Tomcat et faites attention à Passerelle colonne

tomcat-http2

Et, comme vous pouvez le voir, les demandes ont été servies en utilisant h2.

Using Logs

Regardez le fichier access.log et examinez les demandes entrantes.

xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET / HTTP/2.0" 200 11468
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.css HTTP/2.0" 200 5931
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.png HTTP/2.0" 200 5103
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-button.png HTTP/2.0" 200 713
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-upper.png HTTP/2.0" 200 3103
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-nav.png HTTP/2.0" 200 1401
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /asf-logo-wide.svg HTTP/2.0" 200 27530
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-middle.png HTTP/2.0" 200 1918
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /favicon.ico HTTP/2.0" 200 21630

Est-ce que tu vois HTTP / 2.0 est catégorisé dans chaque demande?

Using Internet-based tools

Si l'URL de votre application Tomcat est disponible sur Internet, vous pouvez comparer les outils suivants.

Conclusion

La mise en œuvre de H2 sur Tomcat est simple. Je recommande fortement de tester la mise en œuvre de votre application pour vous assurer qu'il n'y a pas d'effets secondaires.

Si vous souhaitez apprendre l'administration de Tomcat, consultez ceci Cours en ligne.

Merci à nos commanditaires
Plus de bonnes lectures sur Tomcat
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder