当前位置: 首页 > 知识库问答 >
问题:

SCEP扩展证书属性(&E)

陆翔飞
2023-03-14

我正在使用SCEP为我的WebService创建证书。在成功创建证书和启动服务器之后,我尝试通过浏览器访问wsdl,浏览器显示一条错误消息,该消息表示该应用程序不允许使用证书类型,错误代码:SEC_ERROR_INSAPPLAYATE_CER_TYPE。一位同事指出,我必须将扩展密钥属性中的密钥用法更改为“服务器身份验证”,并且应该在认证请求中这样做。

要创建一个新请求,我使用BouncyCastle。请参阅下面的代码段:

    PKCS10CertificationRequestBuilder builder = new PKCS10CertificationRequestBuilder(subject, pkInfo);
    builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_challengePassword, new DERPrintableString(challengePassword));

    return builder.build(signer);
    builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extendedCertificateAttributes, ??? );

一些信息:我正在使用JSCEP和bouncycastle 1.48

我希望有人能给我指出解决办法。提前道谢。

共有1个答案

郎成弘
2023-03-14

不推荐使用扩展的证书属性,但还有一个名为Extension request的PKCS#9属性,它可以包含调用方希望包含在证书中的一些扩展。

extensionRequest属性类型可用于携带有关请求者希望包含在证书中的证书扩展的信息。

当然,证书颁发机构必须支持该属性,并且可以根据其证书策略忽略该属性。

要在CSR中包含此属性,可以使用以下代码(未经测试):

KeyUsage ku = new KeyUsage(KeyUsage.digitalSignature);
Extension kuExt = new Extension(Extension.keyUsage, true, ku.getEncoded());
ExtendedKeyUsage eku = new ExtendedKeyUsage(KeyPurposeId.id_kp_serverAuth);
Extension ekuExt = new Extension(Extension.extendedKeyUsage, true, eku.getEncoded());
Extensions exts = new Extensions(new Extension[] {kuExt, ekuExt});
builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest, exts);
 类似资料:
  • 在 Gradle 领域模型中所有被增强的对象能够拥有自己定义的属性. 这包括,但不仅限于 projects , tasks , 还有 source sets . Project 对象可以添加,读取,更改扩展的属性. 另外,使用 ext 扩展块可以一次添加多个属性. 例子 13.3. 使用扩展属性 build.gradle apply plugin: "java" ext { springV

  • 我有一个项目,它将成为现有ERP应用程序的附加组件。我已经让SSO正常工作,具有基本的Spring Security设置(请参阅我的票证:Grails和CAS基本设置)。此外,我没有使用s2快速入门。 我对Java开发还是新手,所以请耐心等待。。。我一直在浏览文档和示例,在某些方面,我对所看到的内容感到更困惑。我有几个问题: 1)此设置允许我访问登录用户的用户名,但仅此而已?如何访问User对象以

  • 这是我的代码: 这是我放置在V和H框中的自定义框节点元素 错误:粉色是框,灰色是StackPane的背景颜色,用于视觉测试。 我想做的是: 我想要的是:我想要CustomBox中的矩形(以及稍后添加的其他组件)填充它们所在的StackPane的大小,并在调整窗口大小时改变它们的大小。我基本上想让它们模仿那个窗格的大小。 现在试着解释一下发生了什么,基本上我有一个基本上是正方形的类(稍后会有更多的东

  • 有两种方法可以定义访问令牌类型 - 通过在访问令牌类型的注册表中注册。 通过使用唯一的绝对URI(统一资源标识符)作为其名称。 定义新的端点参数 参数名称必须遵守参数名称ABNF(Augmented Backus-Naur Form是一种基于Backus-Naur形式的元语言,由其自己的语法和派生规则组成),参数值的语法必须明确定义。 param-name = 1* name-char name-

  • 目的 测试 OpenSHift 水平弹性扩展,资源限制。 环境 openshift v3.11.16/kubernetes v1.11.0 步骤 创建工程1. CLI 登录到 OCP $ oc login https://master.example.com:8443 -u admin -p admin2. 创建工程 $ oc new-project test-hpa 准备测试镜像 本部分使用测试