Difficulté de configuration de protection du serveur par certificat client

Question about WAPT Server / Requêtes et aides autour du serveur Wapt
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
lrobinot
Messages : 2
Inscription : 29 oct. 2019 - 08:55

10 déc. 2020 - 08:34

Bonjour, je suis à l'étape 2 de notre installation.

Je veux protéger notre serveur WAPT, accessible sur internet, grace à l’authentification par certificat client.

Je pense avoir suivi la documentation https://www.wapt.fr/fr/doc/wapt-securit ... ation.html, qui soit dit en passant n'est pas complètement raccord avec les fichiers nginx générés par une version 1.8.2.7334. Après avoir ajouté la ligne "include /etc/nginx/certificate-auth.conf;" partout ou je la pense utile, j'arrive a faire un "wapt-get update", mais le lancement et la tentative d'authentification sur la console répond avec une erreur 401. Sur le serveur WAPT, dans les logs nginx j'ai :

x.x.x.x - admin [07/Dec/2020:17:19:37 +0100] "POST /api/v3/login HTTP/1.0" 401 195 "-" "waptconsole/1.8.2.7334"

Mon fichier de config nginx est le suivant :

Code : Tout sélectionner

server {
    listen                      80;
    listen                      [::]:80;
    server_name                 _;
    return 301                  https://$host$request_uri;
}

server {
    listen                      443 ssl;
    server_name                 _;

    ssl_certificate             "/opt/wapt/waptserver/ssl/cert.pem";
    ssl_certificate_key         "/opt/wapt/waptserver/ssl/key.pem";
    ssl_protocols               TLSv1.2;
    ssl_dhparam                 /etc/ssl/certs/dhparam.pem;
    ssl_prefer_server_ciphers   on;
    ssl_ciphers                 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_stapling                on;
    ssl_stapling_verify         on;
    ssl_session_cache           none;
    ssl_session_tickets         off;

    ssl_client_certificate "/opt/wapt/conf/ca-wapt.public.geovar.net.crt";
    ssl_verify_client optional;

    gzip_min_length     1000;
    gzip_buffers        4 8k;
    gzip_http_version   1.0;
    gzip_disable        "msie6";
    gzip_types          text/plain text/css application/json;
    gzip_vary           on;

    index index.html;

    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # be sure these headers are not forwarded
        proxy_set_header X-Ssl-Client-Dn  "";
        proxy_set_header X-Ssl-Authenticated  "";

        client_max_body_size 4096m;
        client_body_timeout 1800;

        location /static {
            alias "/opt/wapt/waptserver/static";
        }
        
        location /ssl {
            alias "/var/www/ssl";
        }
        
        location ~ ^/(wapt/waptsetup-tis.exe|wapt/waptagent.exe|wapt/waptdeploy.exe|sync.json|rules.json)$ {
            add_header Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0";
            add_header Pragma "no-cache";

            include /etc/nginx/certificate-auth.conf;

            root "/var/www";
        }

        location ~ ^/(wapt/.*|waptwua/.*|wapt-diff-repos/.*)$ {
            add_header Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0";
            add_header Pragma "no-cache";
    
            include /etc/nginx/certificate-auth.conf;

            root "/var/www";
        }
        
        location ~ ^/(wapt-host/.*)$ {
            log_not_found off;
            add_header Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0";
            add_header Pragma "no-cache";
    
            include /etc/nginx/certificate-auth.conf;

            root "/var/www";
        }

        location / {
            add_header Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0";
            add_header Pragma "no-cache";
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            client_max_body_size 4096m;
            client_body_timeout 1800;
    
            location /add_host_kerberos {
                return 403;
            }
     
            location /wapt-host/Packages {
                    return 403;
            }

            location / {
                add_header X-Forwarded-List $http_x_forwarded_for;
                add_header X-Remote-IP $remote_addr;

                include /etc/nginx/certificate-auth.conf;

                proxy_pass http://127.0.0.1:8080;
            }

            location /socket.io {
                proxy_http_version 1.1;
                proxy_buffering off;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";

                include /etc/nginx/certificate-auth.conf;

                proxy_pass http://127.0.0.1:8080/socket.io;
            }
        }
    }
}
Je suis un peu perdu en ce qui concerne les requêtes qui doivent être protégées et les autres. Par exemple si je j'ouvre https://mon-server/ dans un navigateur, le retour est une erreur 401, ce qui m'interdit de naviguer dans l'éventuel /store ;)

Merci pour votre aide certaine.
Verrouillé