Mein Nginx vertraut dem Zertifikat nicht, das meine App sendet?

Mein Nginx vertraut dem Zertifikat nicht, das meine App sendet?

Ich versuche, einen NGINX-Server einzurichten, der SSL hat und auch eine Client-Verifizierung durchführt. Aus irgendeinem Grund funktioniert das nicht. Wenn ich die Zertifikate zwischen zwei Spring-Boot-Anwendungen ausprobiere, funktionieren sie. Die Zertifikate sind also gut. Ich habe die folgende Nginx-Konfigurationsdatei:

#user  nobody;
worker_processes auto;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;

    keepalive_timeout  65;

    server {
        listen 443 ssl;
        
        ssl_certificate D:/nginx/server.cer;
        ssl_certificate_key D:/nginx/server.pkcs8;

        ssl_verify_client on;
        ssl_trusted_certificate D:/nginx/client.cer;
        ssl_client_certificate D:/nginx/client.cer;

        
        server_name localhost;
        
        location / {            
            return 301 https://www.google.com/ ;
        }
        
        location /api/user {
            proxy_pass http://localhost:8443/api/user ;
        }
        
        location /api/key {
            proxy_pass http://localhost:8443/api/key ;
        }
        

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Wenn ich dies ändere, ssl_verify_client on;erhalte ssl_verify_client off;ich das erwartete Ergebnis. Die restlichen Konfigurationen sollten also in Ordnung sein ... Ich habe heute mit NGINX begonnen und würde gerne etwas Hilfe bekommen.

Zertifikate werden von mir erstellt. Kein Aussteller, keine Zertifikatskette. Selbst signierte Zertifikate.

Dank im Voraus.

Antwort1

Die Anweisungen ssl_client_certificate(und ssl_trusted_certificatefalls Sie sich für deren Verwendung entscheiden) sollen das CA-Zertifikat enthalten, anhand dessen Client-Zertifikate überprüft werden. Ändern Sie diese Anweisungen so, dass sie auf die Datei verweisen, die das CA-Zertifikat enthält, mit dem Sie Ihre Client-Zertifikate signiert haben.

verwandte Informationen