Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de configuration d'un virtualhost Nginx

pour un site avec authentification du client par certificat

    28 avril 2021 à 7:42:05

    Bonjour,

    J'ai un site php basique, avec un certificat letsencrypt pour la navigation ssl. Jusque là, tout marche bien, mon certificat se met à jour tous les 3 mois, et mon site fait ce que j'attends de lui. Maintenant, je souhaite configurer le virtualhost pour qu'il n'accepte la connexion que d'un client disposant d'un certificat pour que n'importe qui ne puisse pas aller dessus sans pour autant implémenter un système d'authentification lourd pour un site juste destiné à afficher des infos sur mon serveur.

    J'ai donc cherché sur internet, et suivi plusieurs tutos pour réaliser une authentification par certificat via Nginx. Mais sans succès. J'ai testé tout ce qui me venait à l'esprit, de la création de ma propre autorité de certification (ajoutée manuellement dans mon navigateur) jusqu'à l'utilisation du certificat letsencrypt de mon domaine. Mais même en générant et regénérant des certificats utilisateurs et en les intégrant dans les certificats de mon navigateur (firefox), rien n'y fait...

    Quand je me connecte à mon site, il m'affiche sans cesse :

    400 Bad Request

    No required SSL certificate was sent

    La configuration de mon virtualhost :

    # Default server configuration
    #
    server {
            server_name sub.domain.tld;
    
            root /var/www/sub.domain.tld;
    
            access_log /var/log/nginx/sub.domain.tld.access.log;
            error_log /var/log/nginx/sub.domain.tld.access.log;
    
            server_tokens off;
            add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
            add_header X-Frame-Options "SAMEORIGIN" always;
            add_header X-Content-Type-Options "nosniff" always;
            add_header X-XSS-Protection "1; mode=block" always;
            add_header Referrer-Policy "same-origin" always;
            add_header Feature-Policy "midi none;notifications none;push none;sync-xhr none;microphone none;camera none;magnetometer none;gyroscope none;speaker self;vibrate none;fullscreen self;payment none;";
    
            # Add index.php to the list if you are using PHP
            index index.php index.html index.htm index.nginx-debian.html;
    
            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
            }
    
            # pass PHP scripts to FastCGI server
            #
            location ~ \.php$ {
                    include snippets/fastcgi-php.conf;
    
                    # With php-fpm (or other unix sockets):
                    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
                    # With php-cgi (or other tcp sockets):
                    #fastcgi_pass 127.0.0.1:9000;
            }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            location ~ /\.ht {
                    deny all;
            }
    
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/sub.domain.tld/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/sub.domain.tld/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    
            ssl_client_certificate /etc/letsencrypt/live/sub.domain.tld/fullchain.pem;
            ssl_verify_client on;
            ssl_verify_depth 2;
    
    }
    
    server {
        if ($host = sub.domain.tld) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
    
    
            server_name sub.domain.tld;
            listen 80;
        return 404; # managed by Certbot
    
    
    }

    Ce que j'aimerais maintenant, c'est correctement configurer mon serveur pour qu'il me permette de gérer une authentification client par certificats, puis savoir comment je dois générer le dit certificat à ajouter à mon serveur pour que ca marche.

    Merci par avance de l'aide que vous pourrez m'apporter :)

    • Partager sur Facebook
    • Partager sur Twitter

    Hier est derrière ; Demain est un mystère ; Aujourd'hui est un cadeau : c'est pourquoi on l'appelle le Présent. [Maître Oogway]

    Problème de configuration d'un virtualhost Nginx

    × 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