OpenXPKI с JSCEP для запроса CRL
Я пытаюсь получить CRL от сервера OpenXPKI (используется конфигурация по умолчанию). Возможен запрос и опрос сертификата.
На сервере 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.application.ERROR: 12156 [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] SCEP getcrl - не найден издатель для серийного 511 и издатель DC=ORG,DC=OpenXPKI,OU= тестовый CA,CN=CA ONE
Всегда не найден эмитент для серийного XXX и эмитент YYY (XXX и YYY зависят от информации отправки запроса CRL).
Пожалуйста, кто-нибудь может мне помочь или дать совет? - Заранее спасибо!
1 ответ
Я решил проблему с помощью сообществ JSCEP и OpenXPKI. Проблема в том, что DN эмитента обращено, это означает, например, CN=CA,OU=Test CA,DC=OpenXPKI,DC=ORG
изменено на DC=ORG,DC=OpenXPKI,OU=Test CA,CN=CA ONE
и getCRL
из OpenXPKI нет записи для обращенного эмитента.
Простое решение - поменять эмитента на getCRL
запрос (проверьте исправление OpenXPKI), изменив код из файла get_getcrl_issuer_serial.pm. Добавьте следующий код в строку 107:
$issuer = join ",", reverse split (/,/, $issuer);
Решением на будущее было бы сделать getCRL
Логика реквестера независима и позволяет издателю заказать запрос.