nginx $ ssl_client_i_dn의 형식이 갑자기 변경된 이유는 무엇입니까?


13

우리는 고객 중 하나를 인증하기 위해 클라이언트 측 인증서를 사용하고 있습니다.

설정은 다음과 같습니다. Django 응용 프로그램 앞에 nginx가 있습니다. 우리의 nginx의 설정에서, 우리는 작업 (의 실제 클라이언트 측 인증서 검증을 얻기 위해 필요한 매개 변수를 가지고 ssl_client_certificate, ssl_verify_client등) 및

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;

즉, 변수 값을 Django 앱으로 가져옵니다. 그런 다음 Django 앱은이 정보를 사용하여 연결중인 사용자를 식별하고 권한을 부여합니다.

우리는 인증서를 사용하여 로그인 할 수없는 사람들에 대한 보고서를 갑자기 받기 시작했을 때 아무런 문제없이 몇 달 동안 이것을 성공적으로 사용했습니다. 슬래시로 구분 된 형식에서 $ssl_client_s_dn$ssl_client_i_dn값 의 형식 이 변경된 것으로 나타났습니다 .

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

쉼표로 구분 된 형식으로 :

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

이 문제를 해결하는 것은 쉽지만 그 이유를 모르겠습니다. 그래서 내 질문은 실제로 :

  1. 가치는 $ssl_client_s_dn어디 에서 오는가? 그것은 nginx에 의해 설정됩니까? 클라이언트?
  2. 이 값이 가질 수있는 형식에 대한 문서 / 사양이 있습니까? 이름이 있습니까?

답변:


18

릴리스 1.11.6에서 nginx가 변경했기 때문에 변경되었습니다. 변경 로그에 표시된대로 :

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

이런 종류의 일을 피하려면 불안정한 메인 라인 릴리스보다는 안정적인 릴리스를 고수해야합니다. 어느 쪽이든, 맹목적으로 제품을 업그레이드하기 전에 먼저 테스트해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.