Partage
  • Partager sur Facebook
  • Partager sur Twitter

HTTPS bonne pratique

    8 juin 2023 à 8:37:01

    Bonjour,

    J'essaye de déployer une application en https et malgré mes recherches je n'arrive pas à trouver LA bonne pratique.

    Je suis sous Windows, J'ai une application A qui est découpé en 3 parties:

    - Front

    - Back

    - API tiers interne (qui exécute seulement des URL https pour envoyer des données au back)

    J'ai 2 cas de déploiement:

    - On premise (utilise une IP privée interne)

    - Cloud (utilise une IP publique ou domaine)

    Pouvez-vous m'indiquer la bonne pratique à suivre pour mettre en place le HTTPS svp ?

    Est-ce que je dois tout passer en HTTPS, est-ce que je dois passer en HTTPS seulement le domaine et laisser tout le reste en HTTP ? Est-ce que je dois utiliser un reverse proxy ? Est-ce que c'est possible de générer un certificat CA sur une adresse IP, est-ce que c'est bien de faire ca?

    Pour l'instant j'ai généré un certificat autosigné et activé https pour le front, j'ai activer https sur le back. l'api tiers interne exécute seulement des URLs de l'app back en https mais les appels ne fonctionne pas.

    Le problème c'est que si je fais ça, chez les clients tant qu'on à pas autoriser via le navigateur que la connexion est sécurisé, on a pas accès à l'application. J'ai essayé d'ajouter le certificat dans l'autorités de certification racine de confiance sur ma machine mais aucun changement.

    Du coup je suis un peu perdu et plus je lis moins je sais quoi faire.

    Merci

    -
    Edité par jeyGey 8 juin 2023 à 9:24:01

    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2023 à 17:23:16

      J'essaye de déployer une application en https

      Déployer où ? Des clouds permettent de gérer cela comme AWS, Azure, ...

      Pouvez-vous m'indiquer la bonne pratique à suivre pour mettre en place le HTTPS svp ?

      Il y a plusieurs manières de faire,

      • reverse proxy
      • services spécifiques (Let's Encrypt par ex.)
      • cloud
      • ...
      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        9 juin 2023 à 11:27:32

        - 1 en interne sur une IP privée (chez les clients)

        - 1 sur un cloud privée (axialys)

        J'ai "réussi" à me débrouiller un peu, après je ne sais pas si c'est bien de faire çà.

        J'ai créer un reverse proxy avec nginx

        upstream app_back {
        		server 127.0.0.1:8070;
        	}
        	
        	upstream app_front {
        		server 127.0.0.1:8071;
        	}
        
        	server {
        		listen		80;
        		listen		[::]:80;
        		
        		server_name  [DOMAIN].fr www.[DOMAIN].fr;
        
        		location /.well-known/acme-challenge/ {
        			root "C:/Program Files/nginx-1.22.1/html/letsencrypt";
        		}
        		root "C:/Program Files/app/front/packages/app/build";
        		
        		location / {
        			try_files $uri $uri/ /index.html;
        		}
        	}
        
        	server {
        		listen       443 ssl;
        		listen		 [::]:443 ssl;
        		
        		server_name app;
        		
        		ssl_certificate      "C:/Program Files/app/certificates/certificate.crt";
        		ssl_certificate_key  "C:/Program Files/app/certificates/private.key";
        
        		ssl_protocols TLSv1.2 TLSv1.3;
        		ssl_prefer_server_ciphers off;
        		
        		location / {
        			proxy_pass http://app_front;
        			proxy_set_header Host $http_host;
        			proxy_set_header X-Real-IP $remote_addr;
        			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        			proxy_set_header X-Forwarded-Proto $scheme;
        		}
        
        		location /welcom/api {
        			proxy_pass http://app_back;
        			proxy_set_header Host $http_host;
        			proxy_set_header X-Real-IP $remote_addr;
        			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        			proxy_set_header X-Forwarded-Proto $scheme;
        		}
        	}
        	
        	server {
        		listen       8071;
        		listen		 [::]:8071;
        		
        		server_name  [DOMAIN].fr www.[DOMAIN].fr;
        		
        		root "C:/Program Files/app/front/packages/app/build";
        		
        		location / {
        			try_files $uri $uri/ /index.html;
        		}
        	}

        Je fais arriver sur le reverse et je dispatch soit sur l'interface web soit sur l'API.

        Le seul "problème" qui me reste c'est:

        - en interne, quand j'accède à l'application j'ai un message comme quoi le site n'est pas sécurisé (normal) mais j'aimerais faire en sorte si c'est possible que lorsque j'accède au site, c'est automatiquement autorisé (en installant le certificat sur la machine ou je sais pas).

        Le but en interne c'est que j'y accède via une IP sans port et que j'accède directement à l'application (j'ai utilisé un certificat auto signé est-ce que c'est bien comme ca qu'on fait ?) J'ai vu aussi qu'on pouvait passer par l'active directory pour importer un certificat est-ce que c'est comme ca qu'il font dans les entreprises ?

        - sur le cloud, il faut que je génère un certificat via certbot (je suis entrain de le faire et normalement je devrais pas avoir de problème).

        Est-ce que pour l'instant je suis dans les "normes" ou y'a une meilleur façon de faire ?

        Si vous pouvez m'aider pour l'app interne pour le message dans le navigateur :)

        Merci.

        -
        Edité par jeyGey 9 juin 2023 à 12:10:25

        • Partager sur Facebook
        • Partager sur Twitter

        HTTPS bonne pratique

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown