我正在尝试建立 SSL 连接,但收到来自服务器的 400 No required SSLcertificate was sent 响应。
我用了本教程为此,我尝试了一切来解决这个问题,但 Cloudflare 证书似乎有问题,因为当我禁用 ssl_verify_client 时它正在工作(带有安全警报)。这是我的 nginx 配置:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
ssl_verify_client on;
server_name example.com www.example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/www/exampleproject;
}
location /media/ {
root /home/username/www/exampleproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/username/www/exampleproject/exampleproject.sock;
}
}
答案1
阅读您提供的链接。大约 2/3 的内容描述了这个确切的错误以及它发生的原因。您已将代理配置为要求浏览器提供客户端证书,但您尚未告诉浏览器应提供证书或哪一个证书。
看https://stackoverflow.com/questions/40847638/how-chrome-browser-know-which-client-certificate-to-prompt-for-a-siteChrome 的流程(IIRC、Firefox 的工作方式类似)。