Сервис обслуживания ЭП
Сервис обслуживания ЭП — компонент модуля Базовые объекты. Сервис указывает в журнале подписей Web-клиента актуальный статус подписи, тип и дату окончания срока действия сертификата. Сервис обслуживания ЭП может работать в сочетании с Криптосервисом — Docker-контейнером, выполняющим функции обслуживания ЭП.
Для использования криптосервиса ЭП требуется Docker актуальной версии и опция лицензии Docsvision Сервис обслуживания электронной подписи (только для добавления архивного штампа времени). Криптосервис может быть получен из общего реестра образов Docker Hub — docsvision/cryptoservice
или реестра образов Docsvision — packages.docsvision.com/cryptoservice
.
Функциональные возможности сервиса обслуживания ЭП
Сервис обслуживания ЭП — расширение, входящее в стандартную поставку модуля Базовые объекты, не следует путать его с Криптосервисом. Криптосервис поставляется в виде Docker-контейнера. |
-
Если срок действия сертификата не истёк, Сервис указывает в карточке актуальный статус подписи, тип и дату окончания срока действия сертификата, даёт возможность просматривать дополнительную информацию о подписи в журнале подписей Web-клиента.
-
Если срок действия сертификата не истёк, Криптосервис доступен и функционирует, в карточку добавляется новый архивный штамп времени и улучшает подпись до CAdES-A.
-
В Docsvision версии 6.1 и выше Криптосервис является обязательным для проверки подписей CAdES-BES и CAdES-X Long Type 1 с нестандартными для .NET 6 алгоритмами в сертификатах. Требуется, например, при использовании сертификатов КриптоПро.
-
В Docsvision версии 6.1 и выше Криптосервис также необходим для функционирования Простой подписи.
Из-за использования библиотеки tspcom.dll Криптосервис требует быть развернут минимум в 32-битном процессе Службы рабочих процессов.
Установка и запуск Криптосервиса
-
Модуль "Платформа" версии 6.1 и выше + "Web-клиент" 18 и выше.
Криптосервис является обязательным для проверки подписей с нестандартными для .NET 6 алгоритмами в сертификатах. Требуется, например, при использовании сертификатов КриптоПро. -
Модуль "Платформа" версии 5.5.5 + "Web-клиент" 17.
Криптосервис указывает в журнале подписей Web-клиента актуальный статус подписи, тип и дату окончания срока действия сертификата, делает доступной расширенную информацию о подписи.
Криптосервис можно установить и запустить командой:
docker run -d -p 8100:8094 packages.docsvision.com/cryptoservice (1)
1 | Если используется Docker Hub, замените packages.docsvision.com/cryptoservice на docsvision/cryptoservice . |
Настройки криптосервиса задаются в командной строке.
При запуске контейнера необходимо связать порт хоста с портом контейнера, например, -p 8100:8094
. В примере 8100
— порт хоста, 8094
— порт контейнера. Для работы функций проверки и формирования подписи сервер Docsvision должен подключаться к контейнеру через порт хоста. Адрес Криптосервиса указывается в конфигурационном файле, см. подробности ниже.
По умолчанию Криптосервис использует TSP-службу с адресом http://cryptopro.ru/tsp/tsp.srf
. При необходимости адрес используемой TSP-службы можно переопределить с помощью переменной окружения TSP_SERVICE_ADDRESS
. Ниже приведён пример переопределения адреса TSP-сервиса:
$ docker run -d -p 8100:8094 -e TSP_SERVICE_ADDRESS=http://testca2012.cryptopro.ru/tsp/tsp.srf packages.docsvision.com/cryptoservice
Контейнер поставляется в комплекте со следующими сертификатами:
При необходимости использования дополнительных сертификатов выполните одну из следующих настроек:
-
Укажите путь к папке сертификатов:
-
Необходимые сертификаты сохраните в отдельную папку на диске Docker-хоста.
-
Смонтируйте в каталог
/var/cryptoservice/cacerts
Docker-контейнера и запустите контейнер.
При запуске контейнера всё содержимое папки будет импортировано в хранилище.docker run -d -p 8100:8094 -v D:\Cert:/var/cryptoservice/cacerts packages.docsvision.com/cryptoservice (1)
1 Если используется Docker Hub, замените packages.docsvision.com/cryptoservice
наdocsvision/cryptoservice
.
-
-
Заново соберите образ:
-
Создайте Dockerfile:
FROM packages.docsvision.com/cryptoservice COPY ./your/cacerts/ /var/cryptoservice/cacerts/ (1)
1 Если используется Docker Hub, замените packages.docsvision.com/cryptoservice
наdocsvision/cryptoservice
-
Соберите собственный образ:
$ docker build . -t cryptoservice
-
Запустите контейнер:
$ docker run -d -p 8100:8094 cryptoservice
-
Настройки Криптосервиса для модулей Платформа 5.5.5 и Служба фоновых операций 5.5.2
-
HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\BackOffice\5.5\Server\Extension
. -
В указанной ветке создайте параметр
ComplexSignatureServiceAddress
со строковым значением — адресом Криптосервиса.Например, так: параметр
ComplexSignatureServiceAddress
со значениемConnectAddress=http://server.domain.com:8094/cryptoservice/api/v1
. -
Зайдите в Консоль управления и создайте процесс Службы фоновых операций с типом конфигурации Обслуживание ЭП.
Сервис обслуживания ЭП должен запускаться только в одном экземпляре рабочего процесса Службы фоновых операций.
-
В соединении Docsvision выберите сервер, на котором выполнен пункт 1.
События работы сервиса записываются в журнал Криптосервиса. Ознакомиться с журналом можно, имея идентификатор контейнера:
sudo docker ps (1) sudo docker logs идентификатор-контейнера (2)
1 | Узнать идентификатор контейнера. |
2 | Посмотреть журнал Криптосервиса. |
Улучшение подписи с сертификатом без адреса OCSP сервиса
При улучшении подписи, созданной с помощью сертификата без адреса OCSP сервиса, могут возникать ошибки вида: The signer certificate <…> must have OCSP evidence but it doesn’t contain any OCSP reference. OCSP evidence is not created
.
Исправить ситуацию можно, если известен адрес OCSP сервиса, выдавшего сертификат.
Когда адрес сервиса известен, необходимо в файле настроек криптосервиса /etc/cryptoservice/settings.json
указать актуальные адреса OCSP серверов следующим образом:
{
"ocspSettings": [
{
"ocspUrl": "http://ocsp-service.ru/ocspn/ocsp.srf", (1)
"serial": "17192b01038046a1649b8a076964699c4" (2)
},
{
"ocspUrl": "http://ocsp-service.example.ru/ocspn1000000/ocsp.srf",
"serial": "1f409aa452fd10ee11500ea83ca0f3ce2"
}
]
}
1 | "ocspUrl" — адрес OCSP сервиса. |
2 | "serial" — серийный номер корневого сертификата улучшаемой подписи. |
Конфигурационный файл settings.json
должен располагаться в контейнере криптосервиса по пути /etc/cryptoservice/
. Если в файле задана хотя бы одна группа настроек ocspSettings
, то при улучшении подписи криптосервис будет проверять цепочку родительских сертификатов сертификата улучшаемой подписи.
Серийные номера сертификатов сопоставляются с номером, указанным в конфигурационном файле, при совпадении заданный адрес OCSP будет использоваться для самого близкого родительского сертификата. Чтобы серийный номер сертификата считывался успешно, поместите его в каталог конревных сертификатов /var/cryptoservice/cacerts
.
Контейнер криптосервиса можно сразу смонтировать вместе с файлом настроек OCSP сервиса следующим образом:
$ docker run -d -p 8100:8094 -v /path/to/settings.json:/etc/cryptoservice/settings.json packages.docsvision.com/cryptoservice