1 votes

comment forcer une application web http à utiliser https (ssl) ?

Sur notre serveur Linux, nous avons une sorte de WebApp qui fait tourner son propre petit serveur web en utilisant uniquement http. Cela signifie qu'il ne supporte pas le ssl par lui-même. Je cherche donc un moyen de placer "quelque chose" devant ce petit serveur Web/cette application Web, afin qu'il parle https à l'utilisateur (obligatoire) et qu'il continue à parler http à l'application Web localement (interne au serveur).

j'ai essayé de trouver quelque chose comme ça. mais le fait que j'ai trouvé BEAUCOUP de choses couvrant apache, ssl et reverse proxy n'a pas vraiment éclairci les choses. je suis plus confus qu'avant.

J'ai besoin d'une astuce, de mots-clés ou d'un exemple de configuration qui permette d'atteindre cet objectif.

merci

2voto

Frederik Nielsen Points 3208

Installez un serveur NGINX ou un serveur similaire devant votre application Web, qui détourne le trafic. Configurez ensuite le NGINX avec un certificat SSL.

Configurez votre application web pour qu'elle fonctionne sur le port fx. 8080 et utilisez ce bout de code pour la proxyer dans NGINX :

location / {
  proxy_pass http://127.0.0.1:8080/;
}

L'ensemble du bloc serveur avec SSL activé devrait ressembler à quelque chose comme ceci :

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        listen 443 ssl;

        server_name example.com;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;

        location / {
                proxy_pass http://127.0.0.1:8080/;
        }
}

Exemple de configuration d'un hôte virtuel Apache :

<VirtualHost *:443>
    ServerName example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

    SSLEngine on
    SSLCertificateFile    /path/to/certificatefile
    SSLCertificateKeyFile /path/to/keyfile

        <Location />
            ProxyPass          http://your-webserver:8080/
            ProxyPassReverse   http://your-webserver:8080/
        </Location>
</VirtualHost>

Il n'a pas été testé et peut nécessiter quelques ajustements, mais il devrait vous donner une idée de la façon de le mettre en place.

-1voto

Matthew Points 183

Vous pouvez essayer de faire une réécriture avec apache. Il y a une question similaire qui a été posée auparavant et qui explique comment faire. https://stackoverflow.com/questions/8371/how-do-you-redirect-https-to-http

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X