首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用JSCEP将CSR注册到EJBCA时包含密码

如何在使用JSCEP将CSR注册到EJBCA时包含密码
EN

Stack Overflow用户
提问于 2016-10-23 20:07:53
回答 1查看 590关注 0票数 0

我试图使用JSCEP向EJBCA注册一个证书签名请求,如下所述:https://github.com/jscep/jscep

我能够使用相同格式的csr和私钥(对于端口8443上的ssl授权)从web控制台提交csr,但是当我通过JSCEP尝试时,我在EJBCA日志中得到以下错误:

处理SCEP请求时出错。:org.cesecore.certificates.ca.SignRequestExcept离子:请求中没有密码。

我猜它想要一个终端实体的用户名和注册代码,比如我需要通过web输入的实体,但是我在JSCEP API中没有看到任何地方可以输入这些信息。也许私钥就足够了,但这确实有点奇怪,因为UI希望两者兼而有之。

我想这也意味着我的CSR必须有一个密码,但它没有,但UI没有给我一个问题,所以我不明白为什么会这样。

keystore (从p12文件中解析,并包含密码)和csr都是从文件中解析的,而不是通过编程生成的。公司社会责任来自第三方,我没有钥匙。

我通过jscep客户端的注册请求如下所示:

Client.enrol(证书、privateKey、请求、config.getCaProfile());

证书和私钥都是从p12文件中提取的,请求是从传递给我的csr (pkcs12)中解析的。caProfile是https主页上的表中列出的CA名称::8443/ejbca/adminweb/

请让我知道我的参数是错误的,或者如果我需要在某个地方包括一个密码,我如何在API中做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 17:39:41

现在我可以通过编程构建csr了,它可以端到端工作,所以我考虑关闭这个问题。我仍然有一些工作要使用第三方社会责任,但这应该不是什么大问题。

代码在下面。

代码语言:javascript
复制
    KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
    keyPairGenerator.initialize(1024);
    KeyPair entityKeyPair = keyPairGenerator.genKeyPair();

    PublicKey entityPubKey = entityKeyPair.getPublic();
    X500Principal requesterSubject = new X500Principal("CN=endEntityName");
    PKCS10CertificationRequestBuilder csrBuilder = new JcaPKCS10CertificationRequestBuilder(requesterSubject, entityPubKey); 

    DERPrintableString password = new DERPrintableString("endEntityPassword");
    csrBuilder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_challengePassword, password);

    PrivateKey entityPrivKey = entityKeyPair.getPrivate();
    JcaContentSignerBuilder csrSignerBuilder = new JcaContentSignerBuilder("SHA1withRSA");
    ContentSigner csrSigner = csrSignerBuilder.build(entityPrivKey);
    PKCS10CertificationRequest csr = csrBuilder.build(csrSigner);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40207293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档