Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Scriptoz  
#1 Оставлено : 3 июня 2021 г. 10:51:19(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

Добрый день!

Пытаюсь установить КриптоПро CSP 5.0 в windows docker container. Образ: mcr.microsoft.com/windows/servercore:10.0.19042.985.

Пытаюсь выполнить установку через exe, процесс просто зависает:
Код:
Start-Process -Wait -FilePath "c:\tmp\CSPSetup-5.0.11823.exe" -ArgumentList '-silent -nodlg'




Так же пытался выполнить установку через msi, процесс сразу же завершается, ничего не устанавливается:
Код:
Код:
Start-Process 'msiexec' -ArgumentList '/i c:\tmp\csp-x64-eng__5.0.11998.msi /quiet /qn /norestart /log c:\tmp\log.txt'



Подскажите, пожалуйста, как правильно установить КриптоПро CSP 5.0 в docker на основе образа mcr.microsoft.com/windows/servercore?
Offline Scriptoz  
#2 Оставлено : 3 июня 2021 г. 11:22:40(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

Через msi установку удалось запустить, я забыл ключ -Wait:

Код:
Start-Process 'msiexec' -ArgumentList '/i c:\tmp\csp-x64-eng__5.0.11998.msi /quiet /qn /norestart /log c:\tmp\log.txt' -Wait


Однако, установка завершилась с ошибками. Вот кусок лога с ошибкой:

Код:

KSInstall64:error #-536870365:SetupCopyOEMInf
MSI (s) (D8!AC) [11:00:48:768]: Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.

Error 25002.Driver installation failed. Details in System EventLog.
MSI (s) (D8!AC) [11:00:48:784]:
Error 555.-536870365:
CustomAction KSInstall64 returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 11:00:48: InstallFinalize. Return value 3.
KSInstall64:info: KSInstUninstall start.
KSInstall64:error #2:Can't get inf file location
MSI (s) (D8!4C) [11:00:48:878]: Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.

Error 25002.Driver installation failed. Details in System EventLog.
KSInstall64:error #2:GetInfFileLocation
MSI (s) (D8!4C) [11:00:48:893]: Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.

Error 25002.Driver installation failed. Details in System EventLog.
Info 1903.Scheduling reboot operation: Deleting file c:\Program Files\Crypto Pro\CSP\TBD57E8.tmp. Must reboot to complete operation.
Action ended 11:00:50: INSTALL. Return value 3.


Поиск в EventLog особо ничего не прояснил:
Код:
Get-WinEvent -ProviderName "MsiInstaller" -MaxEvents 100


Код:

   ProviderName: MsiInstaller

TimeCreated                      Id LevelDisplayName Message
-----------                      -- ---------------- -------
6/3/2021 11:00:50 AM           1042 Information      Ending a Windows Installer transaction: c:\\tmp\\csp-x64-eng__5.0.11998.msi. Client Process Id: 4680.
6/3/2021 11:00:50 AM           1033 Information      Windows Installer installed the product. Product Name: CryptoPro CSP. Product Version: 5.0.11998. Product Language: 1033.... 
6/3/2021 11:00:50 AM          11708 Information      Product: CryptoPro CSP -- Installation operation failed.
6/3/2021 11:00:48 AM          10005 Error            Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.
6/3/2021 11:00:48 AM          10005 Error            Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.
6/3/2021 11:00:48 AM          10555 Error
6/3/2021 11:00:48 AM          10005 Error            Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.
6/3/2021 11:00:36 AM           1040 Information      Beginning a Windows Installer transaction: c:\\tmp\\csp-x64-eng__5.0.11998.msi. Client Process Id: 4680.


Offline Scriptoz  
#3 Оставлено : 3 июня 2021 г. 12:42:00(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

Пробовал совет из этого топика с установкой без драйвера NOCPROCTRL=1. Получаю те же ошибки. Да и вообще логи установки с этим параметром и без него выглядят почти идентично. Привожу значимо различающиеся фрагменты:

С опцией NOCPROCTRL=1
Код:

KSInstall64:info: InstallService start.
KSInstall64:info: FullFileName:c:\Program Files\Crypto Pro\CSP\cpdrvlib.ms.inf
KSInstall64:info: FullPath:c:\Program Files\Crypto Pro\CSP\
KSInstall64:info: ComponentID:{AA89E01B-A77E-44F6-9563-67F251E42A2A}
KSInstall64:info: SetupOpenInfFile success
KSInstall64:info: Found Manufacturer: CPMfg
KSInstall64:info: Found TargetOS: NTx86
KSInstall64:info: Found InstallSectionName: cpdrvlib
KSInstall64:info: Found Service: cpdrvlib
KSInstall64:info: CopyOemInf: Going to call SetupCopyOEMInf (1-st time)
KSInstall64:error #-536870365:SetupCopyOEMInf
MSI (s) (F8!68) [12:05:50:342]: Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.


Без опции NOCPROCTRL=1
Код:

KSInstall64:info: InstallService start.
KSInstall64:info: FullFileName:c:\Program Files\Crypto Pro\CSP\CProCtrl.ms.inf
KSInstall64:info: FullPath:c:\Program Files\Crypto Pro\CSP\
KSInstall64:info: ComponentID:{17FF92CA-46FB-4F88-94E3-D624546F926E}
KSInstall64:info: SetupOpenInfFile success
KSInstall64:info: Found Manufacturer: CPMfg
KSInstall64:info: Found TargetOS: NTamd64
KSInstall64:info: Found InstallSectionName: CProCtrl
KSInstall64:info: Found Service: CProCtrl
KSInstall64:info: CopyOemInf: Going to call SetupCopyOEMInf (1-st time)
KSInstall64:error #-536870365:SetupCopyOEMInf
MSI (s) (34!68) [12:13:19:006]: Product: CryptoPro CSP -- Error 25002.Driver installation failed. Details in System EventLog.


Неужели не у кого не возникало желания развернуть КриптоПро в windows docker? Вроде как контейнеры достаточно прочно вошли в нашу жизнь... К слову, в linux docker проблем с установкой никаких не возникает:
Код:

RUN tar -xf cryptopro_csp_r2_5.0.11732_deb.tgz
RUN linux-amd64_deb/install.sh
Offline Максим Коллегин  
#4 Оставлено : 7 июля 2021 г. 18:31:43(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,067
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
В серверной ОС еще нужно отключить установку криптопровайдера уровня ядра:
Код:
NODRIVER=1
Знания в базе знаний, поддержка в техподдержке
Offline Scriptoz  
#5 Оставлено : 22 июля 2021 г. 12:22:45(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

Автор: Максим Коллегин Перейти к цитате
В серверной ОС еще нужно отключить установку криптопровайдера уровня ядра:
Код:
NODRIVER=1


Спасибо! С чем столкнулся сейчас:

Если делать установку КриптоПро CSP при сборке docker образа, то любая последующая команда из Dockerfile "зависает" и потом выдает ошибку:

Dockerfile
Код:

FROM mcr.microsoft.com/windows/servercore:10.0.19042.985
SHELL ["powershell"]

RUN New-Item -ItemType directory -Path c:\\tmp
COPY cryptopro\\csp-x64-eng__5.0.11998.msi c:\\tmp

# После этой команды последующая завершается ошибкой.
# Если эти команды выполнить непосредственно в контейнере - все работает.
RUN Start-Process 'msiexec' -ArgumentList '/i c:\\tmp\\csp-x64-eng__5.0.11998.msi /quiet /qn /norestart /log c:\\tmp\\log.txt NOCPROCTRL=1 NODRIVER=1' -Wait
RUN Get-Content -Path c:\tmp\log.txt


Ошибка:
Код:

container <id> encountered an error during hcsshim::System::Start: context deadline exceeded.
time="2021-07-21T17:07:06+03:00" level=error msg="Error waiting for container: container <id>: driver \"windowsfilter\" failed to remove root filesystem: failed to detach VHD: The device is not ready.


Однако, если убрать процесс установки КриптоПро CSP из сборки образа и выполнить ее позже уже в контейнере, то все работает корректно. КриптоПро устанавливается и с ним можно работать:
Код:

docker build . -t csp
docker run -it --rm csp powershell


Код:

# Выполняется внутри контейнера. Все работает как надо.
Start-Process 'msiexec' -ArgumentList '/i c:\\tmp\\csp-x64-eng__5.0.11998.msi /quiet /qn /norestart /log c:\\tmp\\log.txt NOCPROCTRL=1 NODRIVER=1' -Wait
Get-Content -Path c:\tmp\log.txt


По самой ошибке в интернете ничего особо нет. Есть какие-то предположения, с чем это может быть связано?

Отредактировано пользователем 22 июля 2021 г. 12:31:27(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#6 Оставлено : 22 июля 2021 г. 12:33:57(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,067
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
А что в логе c:\\tmp\\log.txt?
Вы используете режим изоляции процесс или Hyper-V для контейнера?
Знания в базе знаний, поддержка в техподдержке
Offline Scriptoz  
#7 Оставлено : 22 июля 2021 г. 13:00:16(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

Автор: Максим Коллегин Перейти к цитате
А что в логе c:\\tmp\\log.txt?
Вы используете режим изоляции процесс или Hyper-V для контейнера?


Если запускать установку руками из контейнера, то лог приложил. csp.log (74kb) загружен 1 раз(а). В случае с установкой при сборке образа я содержимое лога посмотреть на могу, так как соответствующая команда не выполняется.

По поводу режима изоляции - я получаю ошибку на этапе сборки образа, а изоляция, если я не путаю, определяется при запуске контейнера, до чего я не дохожу.
Offline Максим Коллегин  
#8 Оставлено : 22 июля 2021 г. 13:07:25(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,067
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
Спасибо, принято, попробую разобраться.
Знания в базе знаний, поддержка в техподдержке
Offline Максим Коллегин  
#9 Оставлено : 5 августа 2021 г. 13:45:03(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,067
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
Docker на Windows -- это какая-то невиданная боль.
По теме: CSP успешно устанавливается, команда зависает на Get-Content, видимо файл слишком большой.
Лог можно прочитать в C:\ProgramData\docker\windowsfilter\873b7eabc664cd740ade8dfe35429c18654abd90d656e2710228fd19fa0ca979\Files\tmp (хэш конечно же будет другой)

Чтобы полученный образ запускался, нужно удалить (переименовать) модуль cpsspap.dll из C:\ProgramData\docker\windowsfilter\873b7eabc664cd740ade8dfe35429c18654abd90d656e2710228fd19fa0ca979\Files\Windows\System32\

ГОСТ TLS работать без него не будет, попробую разобраться позже, почему не может стартовать.

Но CMS подпись должна работать в таком образе.
Знания в базе знаний, поддержка в техподдержке
Offline Scriptoz  
#10 Оставлено : 19 августа 2021 г. 10:47:48(UTC)
Scriptoz

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.06.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Москва

После установки CSP при сборке образа зависает любая последующая команда из Dockerfile, не только Get-Content. В моем прикладном случае как раз нужен ГОСТ TLS)) Если у Вас в будущем появятся какие-то идеи на счет этой проблемы - буду признателен.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.