OS : CentOS 7
SW : NginX
Matériel existant
- dhparam.pem
- mondomaine.com.crt
- mondomaine.com.csr
- mondomaine.com.clé
Question :
J'essaie de créer une vérification du client en créant des certificats de client, puis d'authentifier les demandes d'un serveur avec NginX vers mon serveur de destination. Cependant, je reçois constamment le message 400 Bad Request - No required SSL certificate was sent
message d'erreur. Qu'est-ce que je fais de mal ? Voici ce que j'ai fait :
-
openssl genrsa -out client.key 4096
-
openssl req -new -key client.key -out client.csr
-
openssl x509 -req -days 365 -sha256 -in client.csr -CA mydomain.com.crt -CAkey client.key -set_serial 2 -out client.crt
Toutes les commandes s'exécutent avec succès, mais l'erreur persiste. De plus, dans mon NginX, sur le serveur de destination, j'ai :
ssl_certificate /etc/nginx/ssl/mydomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.com.key;
ssl_client_certificate /etc/nginx/ssl/mydomain.com.crt;
Configuration de NGINX :
server {
listen 80;
listen 443 ssl;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
ssl_certificate /etc/nginx/ssl/mydomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.com.key;
ssl_client_certificate /etc/nginx/ssl/client.crt;
ssl_verify_client optional;
server_name uploads.mydomain.com;
root /var/www/html/com.mydomain.uploads/public;
error_log /var/log/nginx/mydomain.com/error.log;
access_log /var/log/nginx/mydomain.com/access.log main;
index index.php;
rewrite ^/index\.php?(.*)$ /$1 permanent;
location / {
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^(.*)$ /index.php/$1 last;
}
location ~ ^/index.php(/|$) {
fastcgi_pass unix:/var/run/php-fpm/uploads.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SSL_CLIENT_VERIFY $ssl_client_verify;
fastcgi_param SSL_CLIENT_S_DN $ssl_client_s_dn;
}
}
0 votes
Pouvez-vous nous montrer le reste du fichier de configuration ? En particulier le bloc serveur.
2 votes
Le message d'erreur indique que le client n'a pas envoyé de certificat client. Puisque vous ne montrez pas comment vous avez ajouté un tel certificat client au client, je suppose que vous ne l'avez pas fait du tout. Dans ce cas, il n'est pas étonnant que le serveur se plaint d'un certificat manquant du client.