Tomcat + Apache + SSL

Voici un exemple de configuration permettant d'avoir un frontend Apache ou Nginx, un backend Tomcat (ou autre) et le tout avec une connexion sécurisée SSL.

Un frontend Apache ou Nginx en mode proxy avec un backend Tomcat, rien de plus commun, une simple configuration comme celle-ci suffit à obtenir le résultat souhaité dans la conf virtualhost d'Apache ou de Nginx.

Pour Apache:

<VirtualHost *:80>
ServerName mondomaine.fr
...
ProxyPass           /         http://localhost:8080
ProxyPassReverse    /         http://localhost:8080
...
</VirtualHost>

Pour Nginx:

server {
    server_name mondomaine.fr;
    listen 80;    
    location / {
        include proxy_params;
        proxy_pass http://localhost:8080;
    }
}

Pour la connexion SSL, une modification doit être faite dans la configuration server.xml du Tomcat.

Il est nécessaire de définir un nouveau connector pour la connexion sécurisée.

<Connector connectionTimeout="20000" port="6443" protocol="HTTP/1.1" scheme="https" secure="true" proxyPort="443" proxyName="mondomaine.fr" />

Il faut définir un port d'écoute (6443), le "scheme" https, la valeur true à la propriété "secure", le port du serveur proxy (dans la conf apache / nginx) et enfin le nom du domaine associé (dans la conf apache / nginx).

Pour terminer, la conf à faire dans le virtualhost apache / nginx

Pour apache:

<VirtualHost *:443>
    ServerName mondomaine.fr
    ...
    SSLEngine on
    SSLCertificateFile "C:\Certbot\live\mondomaine.fr\fullchain.pem"
    SSLCertificateKeyFile "C:\Certbot\live\mondomaine.fr\privkey.pem"
    ...
    ProxyPass           /         http://localhost:6443
    ProxyPassReverse    /        http://localhost:6443
    ...
</VirtualHost>

Pour nginx:

server {
        server_name mondomaine.fr;
        location / {
                include proxy_params;
                proxy_pass http://localhost:6443;
        }
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/mondomaine.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mondomaine.fr/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

Attention, la configuration du serveur proxy s'effectue bien en HTTP, mais sur le port 6443.

Seule la connexion au frontend est sécurisée (avec le monde extérieur).
Celle entre le frontend et le backend n'a pas besoin de l'être puisqu'ils sont sur le même serveur.

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.