Для работы ЭЦП необходим "КриптоПро" или "VipNet". Рассмотрим настройку работы "Сервис ОД и ЭЦП" с "КриптоПро".
Скачивание и установка КриптоПро:
cd /opt
wget https://keysystems.ru/files/web/Scripts/CryptoPro/linux-amd64.tgz --no-check-certificate
chmod +x /opt/linux-amd64.tgz
tar -C /opt/ -xvf /opt/linux-amd64.tgz
bash /opt/linux-amd64/install.sh
Для ОС на Debian:
wget -O /opt/linux-amd64_deb.tgz https://keysystems.ru/files/web/Scripts/CryptoPro/linux-amd64_deb.tgz --no-check-certificate
chmod +x /opt/linux-amd64_deb.tgz
tar -C /opt/ -xvf /opt/linux-amd64_deb.tgz
bash /opt/linux-amd64_deb/install.sh
Создание символьных ссылок на утилиты КриптоПро:
ln -s /opt/cprocsp/bin/amd64/certmgr /usr/bin/certmgr
ln -s /opt/cprocsp/bin/amd64/csptest /usr/bin/csptest
ln -s /opt/cprocsp/sbin/amd64/cpconfig /usr/bin/cpconfig
Проверка версии установленного «КриптоПро»:
csptest -enum -info
Загрузка архива с приложением последней доступной версии:
cd /opt/wsks-3.1.24_443/ctl/tar_files
wget "https://keysystems.ru/files/msu/soft/linux/mss_smart_update/23.1/Keysystems.Mss.WebServicecore23.1.1.7.tar.gz" --no-check-certificate
Установка приложения:
bash /opt/wsks-3.1.24_443/ctl/ws_addapp.sh -t "sMSS" -a "Keysystems.Mss.WebServicecore23.1.1.7.tar.gz" -vc "serv" -p "54430"
Параметр «-vc»: "serv", // Виртуальный каталог для приложения
Параметр «p»: "54430", // Выбор порта приложения
Для загрузки файлов приложения и установки необходимо использовать команды:
wget -O /opt/wsks-3.1.24_443/ctl/tar_files/Keysystems.UploadWebService.tar.gz "https://keysystems.ru/files/web/INSTALL/SMART2/updates/UploadService/Keysystems.UploadWebService_net6_6.1.8961.715.tar.gz" --no-check-certificate
bash /opt/wsks-3.1.24_443/ctl/ws_addapp.sh -t "sSiUp" -a "Keysystems.UploadWebService.tar.gz" -vc "ecp" -crtv "cpro"
Важно! На данный момент версия ОД и ЭЦП 6.1.х.х. использует .NET 6 версии, поэтому приложение не запустится "из коробки"
В первую очередь необходимо узнать kestrel-порт сервиса ОД и ЭЦП в контейнере Web-сервер-КС 3.1.24 порт веб-сервера 443 (wsks-3.1.24_443).
bash /opt/wsks-3.1.24_443/ctl/ws_info.sh
В данном случае порт приложения 54431.
Далее необходимо загрузить aspnetcore-runtime-6.0.9-linux-x64.tar.gz и распаковать его в /opt/.dotnet6
wget -O /opt/aspnetcore-runtime-6.0.9-linux-x64.tar.gz https://keysystems.ru/files/web/Linux/netcore/aspnetcore-runtime-6.0.9-linux-x64.tar.gz --no-check-certificate
mkdir -p /opt/.dotnet6 && tar -C /opt/.dotnet6 -xvf /opt/aspnetcore-runtime-6.0.9-linux-x64.tar.gz
Далее необходимо скопировать /opt/.dotnet6 в контейнер wsks-3.1.24_443
docker cp /opt/.dotnet6 wsks-3.1.24_443:/opt/
И отредактировать bash-скрипт запуска сервиса ОД и ЭЦП (kestrel порт 54431).
nano /opt/wsks-3.1.24_443/ctl/app/54431_app.sh
Нужно исправить следующие строчки:
cmdstart="/opt/.dotnet6/dotnet /var/www/html/${app_dir}/${startdll}"
cmdstop="/opt/.dotnet6/dotnet /var/www/html/${app_dir}/${startdll}"
И подправить файл /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh.
sed -i 's/\/opt\/.dotnet\/dotnet/dotnet/g' /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh
Для остальных приложений .NET6 потребуется только правка соответствующего bash-скрипта.
Перезапустим контейнер и проверим статус сервиса ОД и ЭЦП.
systemctl restart wsks-3.1.24_443
bash /opt/wsks-3.1.24_443/ctl/ws_info.sh
По умолчанию сервис сохраняет данные внутри контейнера, что может привести к их при удалении приложения из контейнера.
Для обеспечения сохранности данных изменим директорию для хранения файлов:
nano /opt/wsks-3.1.24443/www/html/wsks54431/uploadservice.config
Необходимо заменить путь в value, на путь к вашему хранилищу или сетевой папке. Если для хранения используется база данных, следует прописать ее адрес и параметры для подключении к ней в специальной строке, исходную строку же закомментировать.
В данном файле также возможно указать тип крипто-провайдера, если он не указан
После изменения конфигурации «uploadservice.config» перезапустите приложение командами:
bash /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh -p 54431 -m stop
bash /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh -p 54431 -m start
Загрузка архива с приложением последней доступной версии:
wget -O /opt/wsks-3.1.24_443/ctl/tar_files/ "https://keysystems.ru/files/web/INSTALL/SMART2/updates/UpdateService/Keysystems.UpdateWebService_net6_6.1.21.709.tar.gz" --no-check-certificate
Установка приложения:
bash /opt/wsks-3.1.24_443/ctl/ws_addapp.sh -t "sUPDS" -a "/opt/wsks-3.1.24_443/ctl/tar_files/Keysystems.UpdateWebService_net6_6.1.21.709.tar.gz" -vc "upd"
Как и в случае с сервисом ОД и ЭЦП, сервис обновлений работает на .NET6 поэтому требуется правка bash-скрипта (см. выше п3).