Kami menggunakan Nginx sebagai proxy terbalik ke server aplikasi web kami. Nginx menangani SSL kami dan yang lainnya berfungsi sebagai proxy terbalik.
Kami ingin meminta sertifikat klien yang valid untuk permintaan /jsonrpctetapi tidak memerlukannya di tempat lain. Cara terbaik yang kami temukan adalah
server {
listen *:443 ssl;
ssl on;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
ssl_client_certificate /etc/nginx/client-ca.crt;
ssl_verify_client optional;
location /jsonrpc {
if ($ssl_client_verify != "SUCCESS") { return 403; }
proxy_pass http://localhost:8282/jsonrpc-api;
proxy_read_timeout 90;
proxy_redirect http://localhost/ $scheme://$host:$server_port/;
}
}
Ini berfungsi dengan baik untuk sebagian besar browser, tetapi beberapa browser seperti Safari dan Chrome-on-Android pada akhirnya mendorong pengguna untuk memberikan sertifikat klien ke mana pun di situs web mereka pergi.
Bagaimana kami membuat Nginx menerima tetapi tidak benar-benar peduli dengan sertifikat klien di mana pun kecuali /jsonrpclokasi kami ?
serverblok yang sama . Kami belum memiliki masalah yang sama saat menggunakan Apache, jadi saya berharap ada beberapa pengaturan yang akan berfungsi di sini.