Mengapa format nginx $ ssl_client_i_dn tiba-tiba berubah?

12

Kami menggunakan sertifikat sisi klien untuk mengautentikasi salah satu pelanggan kami.

Pengaturan kami adalah ini: Kami memiliki nginx di depan aplikasi Django. Dalam konfigurasi nginx kami, kami memiliki parameter yang diperlukan untuk mendapatkan verifikasi sisi-klien yang sebenarnya untuk bekerja ( ssl_client_certificate, ssl_verify_clientdll) dan

uwsgi_param X-Client-Verify $ssl_client_verify;
uwsgi_param X-Client-DN $ssl_client_s_dn;
uwsgi_param X-SSL-Issuer $ssl_client_i_dn;

yang berarti bahwa kita mendapatkan nilai variabel-variabel itu ke dalam aplikasi Django kita. Aplikasi Django kemudian menggunakan informasi ini untuk mengidentifikasi pengguna mana yang terhubung dan mengotorisasi mereka.

Kami telah berhasil menggunakan ini selama beberapa bulan tanpa masalah ketika tiba-tiba kami mulai mendapatkan laporan tentang orang-orang yang tidak dapat masuk menggunakan sertifikat. Ternyata format $ssl_client_s_dndan $ssl_client_i_dnnilai telah berubah, dari format yang dipisahkan dengan slash:

 /C=SE/O=Some organziation/CN=Some CA

ke format yang dipisahkan koma:

CN=Some CA,O=Some organization,C=SE

Memecahkan ini mudah, tetapi saya tidak mengerti mengapa. Jadi pertanyaan saya benar-benar:

  1. Dari mana nilai $ssl_client_s_dndatang? Apakah ini diatur oleh nginx? Klien?
  2. Apakah ada dokumentasi / spesifikasi format yang nilai ini dapat miliki dan apakah ada nama?
Patrik Stenmark
sumber

Jawaban:

18

Mereka berubah karena nginx mengubahnya dalam rilis 1.11.6. Seperti yang ditunjukkan di changelog:

    *) Change: format of the $ssl_client_s_dn and $ssl_client_i_dn variables
       has been changed to follow RFC 2253 (RFC 4514); values in the old
       format are available in the $ssl_client_s_dn_legacy and
       $ssl_client_i_dn_legacy variables.

Jika Anda ingin menghindari hal-hal semacam ini, Anda harus tetap berpegang pada rilis stabil, daripada rilis utama yang tidak stabil. Either way, Anda harus menguji terlebih dahulu sebelum meningkatkan produksi secara buta.

Michael Hampton
sumber