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:
- Gelmenin değeri
$ssl_client_s_dnnereden geliyor? Nginx tarafından mı ayarlandı? Müşteri? - Bu değerin sahip olabileceği biçime ilişkin herhangi bir belge / şartname var mı ve bir adı var mı?