我试图使用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中做到这一点。
发布于 2016-10-28 17:39:41
现在我可以通过编程构建csr了,它可以端到端工作,所以我考虑关闭这个问题。我仍然有一些工作要使用第三方社会责任,但这应该不是什么大问题。
代码在下面。
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);https://stackoverflow.com/questions/40207293
复制相似问题