Ошибки создания запроса на сертификат
Опубликовано Андрей Солдатов on 2021-05-09 14:33

Типовые ошибки при попытке создания запроса на сертификат в веб-интерфейсе сервиса подписи.

1. На сервисе подписи нет доступных провайдеров

Возможные причины возникновения ошибки:
На сервисе подписи нет провайдеров в статусе "Enabled", которые могут использоваться для создания новых ключей.

Рекомендуемое решение:
- Отобразить список зарегистрированных на сервисе подписи провайдеров с помощью командлета: Get-DssCryptoProvider
- Убедиться, что в списке есть провайдеры со значением параметра "IsEnabled", равным "true" и без пометки "Криптопровайдер в режиме Read-Only. Создание новых ключей пользователей запрещено" в "AdditionalInfo". 
- Если нет провайдеров, соответствующих указанным выше критериям - зарегистрировать новый провайдер, в соответствие с п. 4 руководства.

2. Message: invalid_license MessageDetail: Превышено количество пользователей, разрешенных лицензией

Диагностика:
Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins». 

Пример:
CertificateRequestValidator Message: CertificateRequestValidator. Ошибка: invalid_license;
Описание: Превышено количество пользователей, разрешённых лицензией.;

Возможные причины возникновения ошибки:
Превышен лимит пользователей, для которых разрешено создавать запросы на сертификат, в соответствие с условиями введенных на сервис подписи лицензий.

Рекомендуемое решение:
- Выполнить командлет: Get-DssLicense -AssignedUsersInfo
- Если число пользователей, указанных в параметре "AssignedUsersNumber", равно или превышает число пользователей в параметре "TotalUsersNumberLimit" - ввести дополнительную лицензию на сервис подписи, в соответствие с руководством.

3. Message: An error has occured

Диагностика:
Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins». 

Примеры:

А) Криптографическая ошибка:
Криптопровайдер [80] [Crypto-Pro GOST R 34.10-2012 HSM Svc CSP] перешёл в состояние Недоступен. ID [61a89de0-196e-4c85-821a-b48588bd7356].
TargetInvocationException: Адресат вызова создал исключение.DssCryptoProviderException: Криптографическая ошибка.: Не удалось открыть контекст крипто-провайдера. Имя крипто-провайдера: [Crypto-Pro GOST R 34.10-2012 HSM Svc CSP]. Имя ключевого контейнера: [DSS-MK-b573e3a9-e2d7-4331-8905-09b88874ed2a]. Флаги контекста: [CRYPT_MACHINE_KEYSET]. Подробности во вложенном сообщении.
Вложенное сообщение:
Win32Exception: Сервер RPC недоступенWin32Exception: Сервер RPC недоступен

Б) Криптографическая ошибка:
Ошибка создания объекта криптопровайдера. Крипто-провайдер [80] [Crypto-Pro GOST R 34.10-2012 HSM Svc CSP] . ID [61a89de0-196e-4c85-821a-b48588bd7356]. GroupId [6c9df81c-7be3-4fd8-bcdd-d04dc6a5600a]
System.Reflection.TargetInvocationException: Адресат вызова создал исключение.
Не удалось открыть контекст крипто-провайдера. Имя крипто-провайдера: [Crypto-Pro GOST R 34.10-2012 HSM Svc CSP]. Имя ключевого контейнера: [DSS-MK-b573e3a9-e2d7-4331-8905-09b88874ed2a]. Флаги контекста: [CRYPT_MACHINE_KEYSET]. Подробности во вложенном сообщении.
Вложенное сообщение:
Win32Exception: Отказано в доступе

В) Криптографическая ошибка.: Не удалось открыть контекст крипто-провайдера. Имя крипто-провайдера: [Crypto-Pro GOST R 34.10-2012 HSM Svc CSP]. Имя ключевого контейнера: [DSS-61b6a49f-d7cb-41d8-9c54-38c911f42b7d]. Флаги контекста: [CRYPT_MACHINE_KEYSET]. Подробности во вложенном сообщении.
Вложенное сообщение:
Win32Exception: Протекает наложенное событие ввода/вывода]

Возможные причины возникновения ошибки:
- На сервере DSS не запущена служба "Крипто Про HSM 2.0";
- УЗ пула приложений сервиса подписи не добавлена в группу "Привилегированные пользователи КриптоПро HSM";
- Истек срок действия закрытого ключа сертификата доступа к сервисному провайдеру КриптоПро HSM.

Рекомендуемое решение:
- Запустить службу "Крипто Про HSM 2.0";
- Убедиться, что на сервере DSS создана группа пользователей "Привилегированные пользователи КриптоПро HSM" и что в данную группу добавлена УЗ пула приложений сервиса подписи;
- Протестировать срок действия закрытого ключа сертификата доступа к сервисному провайдеру КриптоПро HSM средствами КриптоПро CSP. Если срок действия закрытого ключа истек - перевыпустить сертификат доступа к сервисному провайдеру КриптоПро HSM, перенести его на сервер КриптоПро DSS и перезапустить службу "Крипто Про HSM 2.0". 

4. Сервис подписи не настроен на взаимодействие ни с одним УЦ или нет ни одного обработчика УЦ, доступного через веб-интерфейс

Диагностика:
Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins». 

Примеры:

А) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: Exception occured while creating enroll with ID 1, Name Тестовый УЦ
System.ServiceModel.Security.SecurityNegotiationException: Не удалось установить безопасный канал для SSL/TLS с полномочиями "testuc".

Б) Идентификатор УЦ: 1 Произошла ошибка при отправке запроса на сертификат:  System.ServiceModel.FaultException: Сервер не смог обработать запрос в связи с внутренней ошибкой.  Для получения дополнительных сведений об ошибке либо включите IncludeExceptionDetailInFaults (с помощью атрибута ServiceBehaviorAttribute или через поведение < serviceDebug >) на сервере для того чтобы выслать информацию об исключении назад клиенту, или включить трассировку согласно инструкции Microsoft .NET Framework SDK и проверить записи журнала трассировки клиента.

В) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: Exception occured while creating enroll with ID 1, Name Тестовый УЦ
System.InvalidOperationException: Сертификат оператора не найден в хранилище Локального компьютера либо недействителен. Отпечаток 56F8AA130B25C82173951E6F7C8C4E9B535904DB

Г) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: Exception occured while creating enroll with ID 1, Name Тестовый УЦ
System.ServiceModel.EndpointNotFoundException: Прослушивание на https://testuc/RA/RegAuthLegacyService.svc не выполняла ни одна конечная точка, которая могла бы принять сообщение. Среди прочих причин это могло быть вызвано неправильным адресом или действием SOAP. Подробнее см. в описании InnerException (если имеется).

Д) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: При создании обработчика УЦ 2.0 с ID 1, именем Тестовый УЦ произошла ошибка на стороне Удостоверяющего Центра System.ServiceModel.FaultException`1[[CryptoPro.DSS.SignatureServer.Managers.ICryptoProCA20Service.errorInfo, CryptoPro.DSS.Common.Utils, Version=1.17.0.0, Culture=neutral, PublicKeyToken=cb703a801b9b4b55]]: Действие 'ReadProperties' над сущностью типа 'Folder' с идентификатором 3bdbf973-b216-4335-b443-ac5900a92716 запрещено для пользователя '1bd7a03e-d882-4afb-8cb6-ac5900abd1a1'.

Возможные причины возникновения ошибки:
- Не выполнена настройка для обеспечения взаимодействия DSS с УЦ;
- УЗ пула приложений сервиса подписи не выданы права на доступ к закрытому ключу сертификата привилегированного пользователя ЦР, указанного в настройках обработчика УЦ (OperatorCertThumbprint);
- Возникли проблемы на стороне самого УЦ (например, остановилась служба ЦР);
- В настройках обработчика УЦ указано некорректное имя ЦС (AuthorityName);
- В настройках обработчика УЦ указан отпечаток сертификата привилегированного пользователя ЦР, который не был установлен в хранилище "Личные" локального компьютера сервера DSS, с привязкой к закрытому ключу (OperatorCertThumbprint);
- В настройках обработчика УЦ указан некорректный адрес ЦР (CAServiceUrl);
- В настройках обработчика УЦ указан некорректный идентификатор папки ЦР (FolderId).

Рекомендуемое решение:
- Выполнить настройку обеспечения взаимодействия DSS c УЦ, в соответствие с руководством;
- Установить сертификат привилегированного пользователя ЦР, указанный в настройках обработчика УЦ (OperatorCertThumbprint), в хранилище "Личные" локального компьютера сервера DSS, с привязкой к закрытому ключу;
- Выдать УЗ пула приложений сервиса подписи права на доступ к закрытому ключу сертификата привилегированного пользователя ЦР, указанного в настройках обработчика УЦ (OperatorCertThumbprint);
- Указать в настройках обработчика УЦ корректные credentials-ы для подключения - сертификат привилегированного пользователя ЦР (OperatorCertThumbprint), адрес ЦР (CAServiceUrl), имя ЦС (AuthorityName), идентификатор папки ЦР (FolderId). Полный список параметров и их описание представлены в руководстве;
- Убедиться в том, что компоненты ЦР и ЦС функционируют в штатном режиме. 

(4 плюсик(ов))
Класс!
Не очень :(