我正在尝试从OpenXPKI服务器获得CRL (使用默认配置)。请求和轮询证书是可能的。
在OpenXPKI服务器上,我撤销了一些证书,创建了CRL并发布了列表。为了获得CRL,我尝试了不同的方法。
第一种方法:
X509CRL crl = client.getRevocationList(jscepCertificate, jscepKeyPair.getPrivate(),
certificate.getIssuerX500Principal(), certificate.getSerialNumber());第二种方法:
X509CRL crl = client.getRevocationList(jscepCertificate, jscepKeyPair.getPrivate(),
crlIssuer, crlSerialNumber);在服务器上,我的CRL有以下信息:
CRL Serial: 511
CRL Issuer: CN=CA ONE,OU=Test CA,DC=OpenXPKI,DC=ORG
Items: 25当我尝试上述代码示例(以及其他一些代码示例)时,我在CRL请求程序上得到以下错误:
org.jscep.transaction.OperationFailureException:操作由于badCertId失败
在OpenXPKI服务器上,我得到以下错误:
OpenXPKI::Service::SCEP::Command::PKIOperation (/usr/lib/x86_64-linux-gnu/perl5/5.20/OpenXPKI/Service/SCEP/Command/PKIOperation.pm:255);scep-server-1()@f68c server没有为串行511和发行者DC=ORG、DC=OpenXPKI、OU=Test CA、CN=CA ONE找到发行者
始终找不到串行XXX和发行者YYY (XXX和YYY取决于CRL请求的发送信息)。
拜托,有人能帮我吗,或者给我点建议?-谢谢!
发布于 2017-05-30 09:40:47
我在JSCEP和OpenXPKI社区的帮助下解决了这个问题。问题是发行人的DN被反转,这意味着,例如,CN=CA,OU=Test CA,DC=OpenXPKI,DC=ORG被更改为DC=ORG,DC=OpenXPKI,OU=Test CA,CN=CA ONE,而来自OpenXPKI的getCRL没有向反向发行者输入。
一个简单的解决方法是通过更改get_getcrl_issuer_serial.pm文件中的代码来逆转getCRL请求的颁发者(检查OpenXPKI修正)。在第107行中添加以下代码:
$issuer = join ",", reverse split (/,/, $issuer);未来的解决方案将是使getCRL逻辑请求程序独立,并对请求的颁发者进行排序。
https://stackoverflow.com/questions/44044057
复制相似问题