2011-08-08 3 views
2

CSR에 keyusage, regestrationID 등의 추가 필드를 추가해야합니다. Java IBM-sdk60을 사용하고 있습니다. 나는 x500 이름 API를 통해 갔고 어떤 해결책도 찾을 수 없었다. API에 대한 도움을 주시면 감사하겠습니다. 미리 감사드립니다.Java에서 추가 필드가있는 PKCS10 인증 요청 생성

+0

CSR을 생성하는 데 사용하는 API는 무엇입니까? – Jcs

+0

안녕 JCS ... com.ibm.security.pkcs10. *;을 (를) 사용하고 있습니다. com.ibm.security.pkcsutil. *; com.ibm.security.x509.X500Name; 여기서 표준 CSR 요청은 CN, OU, O & C ... 필드로 구성됩니다. 이제 EKU (향상된 키 용도) 및 regestrationID와 같은 새 필드를 매핑해야합니다. 그 fileds를 매핑하는 방법을 찾지 못했습니다. –

+0

String keyUsg = KeyUsageExtension.KEY_ENCIPHERMENT; byte [] der = 새 DerValue (keyUsg) .getOctetString(); KeyUsageExtension keyUsage = 새 KeyUsageExtension (true, der); DerInputStream in = 새로운 DerInputStream (keyUsage.toString(). getBytes()); PKCSAttributes attr = 새 PKCSAttributes ("IBMJCEFIPS"에서); 위의 코드 조각을 사용하여 KeyUsage 확장을 인증서 서명 요청에 추가하려고 시도했지만 다음 예외가 발생합니다. 스레드 "main"의 예외 java.io.IOException : DerValue.getOctetString, 옥텟 문자열이 아닙니다 : 12 @Jcs는 나를 도울 수 있습니다. –

답변

3

CSR (PKCS # 10) 요청에 추가 정보를 포함하는 표준 방법은 Attributes을 추가하는 것입니다. 는 PKCS 번호에 따라 10 표준 :

속성 세트를 포함한의 목적은 두 가지이다 : 다른 특정 개체에 대한 정보 또는 엔티티 수도 나중에 요청 인증서에 의한 "도전 암호"를 제공하기 위해 폐지; 은 X.509 인증서에 포함 할 속성을 제공합니다.

    : 속성의 비 한정적리스트는 PKCS #으로 부여된다 9

속성은 OID과 그 의미 OID에 따라

실제로 PKCS#9 3 개 속성을 정의 값인

  • 챌린지 패스워드
  • 연장 요청
  • 확장 인증서 속성 TES (이되지 않습니다)
  • 당신이 찾고있는 사람이 확장 요청 경우 : extensionRequest 속성 유형은 요청자가 포함하고자하는 인증서 확장에 대한 정보 을 수행하는 데 사용 할 수있다

    인증서에 있습니다.

    이 코드 템플릿 (테스트하지) 당신이 속성을 포함하는 방법에 대한 몇 가지 힌트를 줄 수

    CertificateExtensions exts = /* build the extensions set you want to include */ 
    /* Wrap the extensions set into a SET OF */ 
    OutputStream out = new ByteArrayOutputStream(); 
    exts.encode(out); 
    DerValue val = new DerValue(DerValue.tag_SetOf, out.toByteArray()); 
    PKCSAttribute extReq = new PKCSAttribute(new ObjectIdentifier("1.2.840.113549.1.9.14"), val.toByteArray()); 
    PKCSAttributes attrs = new PKCSAttributes(new PKCSAttribute[] { extReq }); 
    CertificationRequestInfo cri = new CertificationRequestInfo(subject, key, attrs); 
    CertificationRequest csr = new CertificationRequest(cri); 
    

    유의하시기 바랍니다 명시 적으로 열 속성은이 기간 동안 무시됩니다 지원이 PKCS 번호를 알린다는 CA 않는 인증서 생성

    +0

    고맙습니다 JCS ... 이것은 내가 찾고있는 와트입니다 ... 그리고 예 CA는 PKCS # 10 속성을 지원합니다.이 속성은 제공되는 솔루션에 대한 문제를 발견하지 못합니다 ... –