2

keyusage、regestrationIDなどのフィールドをCSRに追加する必要があります。JavaIBM-sdk60を使用しています。x500 name APIを調べましたが、解決策が見つかりませんでした。APIに関するヘルプをいただければ幸いです。前もって感謝します

4

1 に答える 1

3

CSR(PKCS#10)リクエストに追加情報を含める標準的な方法は、を追加することAttributesです。PKCS#10標準によると:

属性のセットを含める目的は2つあります。特定のエンティティに関するその他の情報を提供すること、またはエンティティが後で証明書の失効を要求するための「チャレンジパスワード」を提供することです。X.509証明書に含めるための属性を提供します。属性の非網羅的なリストはPKCS#9に記載されています

属性はOIDであり、その意味はOIDによって異なります。

実際、 PKCS#9は3つの属性を定義しています。

  • チャレンジパスワード
  • 延長リクエスト
  • 拡張証明書属性(これは非推奨です)

あなたが探しているのは拡張リクエストです:

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がこのPKCS#10属性がサポートされていることを明示的にアナウンスしない限り、証明書の生成中に無視されることに注意してください。

于 2011-08-12T10:22:06.663 に答える