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_client
vs) 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_dn
Ve $ssl_client_i_dn
değ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_dn
nereden 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ı?