Исключение сервера подписи cryptoTokenOfflineException: Signtoken не активен

Я настраиваю рабочих для подписи PDF и отметки времени. Я использую сертификат PKCS #12, сгенерированный из EJBCA. ключ - SHA256 с шифрованием ECDSA - ECDSA prime256v1. После использования этих свойств (https://pastebin.com/bkpNBvc1) для настройки я получаю следующие результаты:

20:45:45,531 INFO  [org.signserver.server.log.IWorkerLogger] (default task-1) AllVariablesLogger; CLIENT_IP: 127.0.0.1; XFORWARDEDFOR: null; XCUSTOM1: null; LOG_TIME: 1605991545531; CLIENT_AUTHORIZED: true; EXCEPTION: org.signserver.common.CryptoTokenOfflineException: Signtoken isn't active.; WORKER_AUTHTYPE: NOAUTH; WORKER_NAME: PDFSigner; KEYALIAS: signer00003; PROCESS_SUCCESS: false; WORKER_ID: 4; CRYPTOTOKEN: CryptoTokenP12PdfSigner; REQUEST_LENGTH: 252361; REQUEST_FULLURL: http://localhost/signserver/process?null; FILENAME: document.pdf; LOG_ID: a2c32acb-f5af-4b8f-9104-0ad942c379a3; REPLY_TIME:1605991545531

Когда я использую код регистрации в качестве пароля хранилища ключей, он дает этот результат.

22:34:59,578 INFO  [org.signserver.server.log.IWorkerLogger] (default task-14) AllVariablesLogger; CLIENT_IP: 127.0.0.1; XFORWARDEDFOR: null; XCUSTOM1: null; LOG_TIME: 1605998099578; CLIENT_AUTHORIZED: true; EXCEPTION: org.signserver.common.CryptoTokenOfflineException: No key available for purpose: signer00003; WORKER_AUTHTYPE: NOAUTH; WORKER_NAME: PDFSigner; KEYALIAS: signer00003; PROCESS_SUCCESS: false; WORKER_ID: 4; CRYPTOTOKEN: CryptoTokenP12PdfSigner; REQUEST_LENGTH: 252361; REQUEST_FULLURL: http://localhost/signserver/process?null; FILENAME: document.pdf; LOG_ID: 60961c2a-d005-4f19-a7bf-d74bb30c0448; REPLY_TIME:1605998099578

Какие-либо предложения

Версия ОС: Windows Server 2016
Java: OpenJDK 8.0.242.08 Ant: ant 1.9.14
База данных: MariaDB 10.4.12
Сервер: Wildfly 10.1.0
Версия Signserver: 5.2 .0

Токен активирован и имеет функцию автоматической активации введите здесь описание изображения


person user2426998    schedule 22.11.2020    source источник


Ответы (1)


Так как вы не включили автоактивацию крипто токена. Включили ли вы крипто-токен и воркер перед отправкой запроса на подпись?

person primetomas    schedule 24.11.2020
comment
Я включил криптографический токен и рабочий перед отправкой запроса на подпись, а также включил токен для метки времени. Считаете ли вы автоматическую активацию проблемой? - person user2426998; 24.11.2020
comment
Ваш файл свойств выглядит очень странно. У вас есть несколько свойств, перекрывающих друг друга, например WORKERGENID1.NAME. Я думаю, вы должны использовать один файл свойств для каждого работника. Если вы не уверены, начните с одного рабочего PDF-файла без временных меток, чтобы работать шаг за шагом. - person primetomas; 25.11.2020
comment
Это несколько свойств. если быть точным, одно хранилище ключей работает для метки времени, а другое работает для PDF Signer. Может ли одно хранилище ключей работать для других, учитывая, что сертификат будет иметь как временные метки, так и обозначения подписи PDF? - person user2426998; 25.11.2020
comment
Как я добавил, токен автоматически активируется и активен. - person user2426998; 26.11.2020
comment
На вашем снимке экрана показан крипто-токен в EJBCA, а ваш журнал — с SignServer. Это разные софты. Криптотокен в EJBCA не используется SignServer (и наоборот), вы должны активировать криптотокены в SignServer. См., например, эту документацию: doc.primekey.com/signserver520/signserver-reference/ - person primetomas; 26.11.2020
comment
Вот что я получаю после этого. Он не активен, потому что цепочка сертификатов почему-то недоступна, но доступна. Не могли бы вы сослаться на конкретное руководство по этим ошибкам? pastebin.com/Fip2DUBZ - person user2426998; 26.11.2020
comment
Сначала ошибка говорит о том, что ваш ключ недоступен, что означает, что вы настроили использование ключа подписи, которого нет в файле P12, который вы настроили. Это касается более чем одного подписанта. Я бы сделал один шаг назад и начал все сначала, выполняя одного работника за раз, следуя руководству по эксплуатации. doc.primekey.com/signserver520/signserver-operations/ в вашем случае вы начинаете с создания подписавшего отметку времени, гарантируя, что это работает. После этого создайте средство подписи PDF. - person primetomas; 27.11.2020
comment
Есть ли ссылка, где я могу найти, как сделать хранилище ключей PKCS # 12 с сертификатом для сервера подписи с EJBCA? - person user2426998; 28.11.2020
comment
Это есть в документации SignServer. Есть несколько способов. Вы можете просто создать P12 из EJBCA, но вы должны использовать правильные псевдонимы при настройке в SignServer. Другой способ — создать криптографический токен в SIgnServer, затем вы создаете CSR из SignServer, переносите его в EJBCA, выдаете сертификат, а затем импортируете сертификат в SignServer. Для получения подробных инструкций вы можете следовать руководству EE Howto. Должен использоваться и в CE. doc.primekey.com/signserver/code-signing-how-to- руководства - person primetomas; 30.11.2020
comment
Я создал хранилище ключей из общедоступной сети ejbca после выполнения всех предварительных требований в админке. Я использовал это руководство download.primekey.se/docs/EJBCA-Enterprise/ последний/ но получил результат: - No key available for purpose: signer00002 - Certificate chain not available Руководство, на которое вы ссылаетесь, не имеет значения, поскольку мы не можем получить доступ к сети в CE. У вас есть что-то подобное для CE? - person user2426998; 05.12.2020
comment
Вы можете использовать CLI в CE. Проблема в том, что в загруженном вами файле p12 нет псевдонима signer00002. Вы можете исследовать содержимое файла p12, например, с помощью команды OpenSSL openssl pkcs12 -in file.p12. Это напечатает псевдонимы, которые находятся в файле p12, а затем вам нужно будет использовать эти псевдонимы в настройке подписывающей стороны. - person primetomas; 07.12.2020
comment
Вы пробовали это краткое руководство? doc.primekey. com/signserver520/signserver-operations/ - person primetomas; 07.12.2020
comment
Является ли дружественное имя псевдонимом? Да, я попробовал это краткое руководство, и оно сработало. - person user2426998; 08.12.2020
comment
да, то, что называется friendlyName на openssl, является псевдонимом в SignServer/Java. - person primetomas; 08.12.2020