2017-04-04 2 views
1

나는 주제부두가 인증서 대상 매개 변수 S를 ST로 변형 한 이유는 무엇입니까? 내 서블릿에서이 인증서를 얻으려고 할 때

CN = operator-1505 
O = Test org 
L = Moscow 
S = Moscow 
C = RU 

와 인증서를 사용하지만 해요 :

@Override 
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     X509Certificate[] certificates = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate"); 
     if (certificates != null && certificates.length == 1) { 
      X509Certificate certificate = certificates[0]; 
      authenticate(certificate, req, resp); 
     } 
    } 

주제 변수 certificate에서 것은 :

CN=operator-1505, O=Test org, L=Moscow, ST=Moscow, C=RU 

부두가 S 매개 변수를 ST로 변형시킨 이유는 무엇입니까?

답변

2

S (또는 ST)은 실제로 인증서에 포함되지 않습니다. 여기에는 OID (Object Identifier) ​​2.5.4.8이 포함됩니다.

OpenSSL에는 a snarky comment이 있는데,이 OID의 약식에 대한 신뢰할 수있는 대답은 "ST"이지만 Microsoft는 "S"를 사용했습니다.

두 개의 서로 다른 RFC가 서로 다른 짧은 형식으로 동일한 OID를 참조했으며 각 라이브러리는 해당 특정 값에 사용할 용도에 대한 자체 응답으로 끝납니다.

환경간에 안정적인 OID 값을 사용하여 이름을 인쇄 할 수 있으면 S= 또는 ST=에 일치하는 방법을 찾아야 할 수 있습니다.

편집 :

6.3.3 주 또는 : 나는 ITU-T X.520 (10분의 2,012)를 예로 = S를 사용하는 동안, "ST는"정답이라고 말한다주의하는 것이 즐겁게 해요 도 이름

주 또는도 이름 속성 유형은시 /도를 지정합니다. 디렉터리 이름의 구성 요소로 사용될 때 명명 된 개체가 실제로 위치하거나 다른 중요한 방식으로 연결된 지리적 하위 구분을 식별합니다.

주 또는 지방 이름에 대한 속성 값은 문자열, 예를 들어, S = "오하이오"

stateOrProvinceName ATTRIBUTE ::= { 
    SUBTYPE OF name 
    WITH SYNTAX UnboundedDirectoryString 
    LDAP-SYNTAX directoryString.&id 
    LDAP-NAME {"st"} 
    ID id-at-stateOrProvinceName } 

(강조 광산이며, 슬프게도 나는 "개의 LDAP을 가질 수 없습니다 NAME { "st"} "강조 및 공백 유지)