2011-08-08 8 views
2

keySage、regestrationIDなどのように、CSRに余分なフィールドを追加する必要があります。私はjava IBM-sdk60を使用しています。私はx500名のAPIを使いましたが、解決策は見つかりませんでした。 APIのヘルプは高く評価されます。 事前に感謝しますPKCS10証明書リクエストをJavaで余分なフィールドで生成する

+0

どのAPIを使用してCSRを生成していますか? – Jcs

+0

こんにちはJCS ... com.ibm.security.pkcs10。*;を使用しています。 com.ibm.security.pkcsutil。*; com.ibm.security.x509.X500Name;標準のCSR要求はCN、OU、O&Cフィールドで構成されています。 また、EKU(拡張キー使用)とregestrationIDのような新しいフィールドをマッピングする必要があります。それらのファイルをマップする方法を見つけることができません。 –

+0

文字列keyUsg = KeyUsageExtension.KEY_ENCIPHERMENT; バイト[] der =新しいDerValue(keyUsg).getOc​​tetString(); KeyUsageExtension keyUsage =新しいKeyUsageExtension(true、der); DerInputStream in =新しいDerInputStream(keyUsage.toString()。getBytes()); PKCSAttributes attr =新しいPKCSAttributes(in、 "IBMJCEFIPS"); 上記のコードスニペットを使用してKeyUsage拡張を証明書署名リクエストに追加しようとしましたが、次の例外が発生します。 スレッド "main"の例外java.io.IOException:DerValue.getOc​​tetString、オクテット文字列ではありません:12 @Jcsは私が手伝ってくれます。 –

答えて

3

CSR(PKCS#10)要求に追加情報を含めるための標準的な方法は、Attributesを追加することです。 PKCSによると#10標準:

属性のセットを含むの意図は二つです:どのエンティティ月以降の要求証明書 で 他の特定のエンティティに関する情報、または「チャレンジパスワード」を提供します取り消し; には、X.509証明書に含める属性を指定します。

    :属性の 非網羅的なリストは、属性が OIDあり、その意味はOID

    に依存した値が実際にPKCS#9は、3つの属性を定義するPKCS#9

に与えられています

  • チャレンジパスワード
  • 延長要求
  • 拡張証明書属性TES(これは推奨されません)
  • あなたが探している1が拡張要求です: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); 
    

    この属性を含める方法についていくつかのヒントを与えることがCAを明示的にこれは#10の属性は、それが中に無視されますサポートされているPKCS発表していない限りますのでご注意ください証明書の生成

    +0

    ありがとうJCS ... これは私が探しているワットです。 そして、ええ、CAはPKCS#10属性をサポートしていますので、私が提供するソリューションの問題は見つけられません... –

    関連する問題