Nginx $ ssl_client_i_dn formatı neden aniden değişti?


13

Müşterilerimizden birinin kimliğini doğrulamak için istemci tarafı sertifikaları kullanıyoruz.

Kurulumumuz şudur: Bir Django uygulamasının önünde nginx var. Bizim nginx yapılandırma, biz işe (gerçek istemci tarafı-sertifika doğrulama almak için gerekli parametreleri vardır ssl_client_certificate, ssl_verify_clientvs) ve

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;

Bu, bu değişkenlerin değerlerini Django uygulamamıza aldığımız anlamına gelir. Django uygulaması daha sonra bu bilgileri hangi kullanıcının bağlandığını belirlemek ve yetkilendirmek için kullanır.

Birden birkaç ay boyunca herhangi bir sorun yaşamadan başarıyla kullanıyoruz. Birdenbire, sertifikaları kullanarak oturum açamayan kişiler hakkında raporlar almaya başladık. $ssl_client_s_dnVe $ssl_client_i_dndeğerlerinin biçiminin eğik çizgi ile ayrılmış bir biçimden değiştiği ortaya çıktı :

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

virgülle ayrılmış biçime dönüştürmek için:

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

Bunu çözmek kolaydı, ama nedenini anlamıyorum. Yani sorularım gerçekten:

  1. Gelmenin değeri $ssl_client_s_dnnereden geliyor? Nginx tarafından mı ayarlandı? Müşteri?
  2. Bu değerin sahip olabileceği biçime ilişkin herhangi bir belge / şartname var mı ve bir adı var mı?

Yanıtlar:


18

Değiştiler çünkü nginx 1.11.6 sürümünde onları değiştirdi. Değişiklik günlüğünde gösterildiği gibi:

    *) 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.

Bu tür şeylerden kaçınmak istiyorsanız, kararsız ana hat sürümlerinden ziyade kararlı sürümlere bağlı kalmalısınız. Her iki durumda da, üretimi körü körüne yükseltmeden önce test etmelisiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.