我的 Nginx 不信任我的应用程序发送的证书?

我的 Nginx 不信任我的应用程序发送的证书?

我正在尝试设置一个具有 SSL 并进行客户端验证的 NGINX 服务器。由于某种原因,它无法正常工作。如果我在 2 个 Spring Boot 应用程序之间试用证书,它们可以正常工作。所以证书很好。我有以下 nginx 配置文件:

#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;
        }
    }
}

如果我将其更改ssl_verify_client on;为,ssl_verify_client off;我就会得到我期望的结果。所以其余的配置应该没问题...我今天启动了 NGINX,希望得到一些帮助。

证书由我创建。没有颁发者,没有证书链。自签名证书。

提前致谢。

答案1

这些指令ssl_client_certificatessl_trusted_certificate如果您决定使用它)应该包含用于验证客户端证书的 CA 证书。将这些指令更改为指向包含用于签署客户端证书的 CA 证书的文件。

相关内容