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

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей *  
#21 Оставлено : 24 мая 2025 г. 22:31:10(UTC)
Андрей *

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

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

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
былина:



если кто из форумчан узнал себя - привет)
Техническую поддержку оказываем тут
Наша база знаний
Offline nickm  
#22 Оставлено : 24 мая 2025 г. 22:51:33(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: Андрей * Перейти к цитате
может уже беспокоится, вдруг контейнер снесут из реестра\папки...

Ну да, сценариев может быть множество - пользователь и сертификат может удалить и контейнер, прав Ему хватит. Но тупо, при каждом логине в УЗ импортировать *.pfx вообще не вариант;

Автор: Андрей * Перейти к цитате
а скрипт не узнает... читать имя контейнера, с которым связан сертификат -> проверять, есть ли он в реестре\папке.

Лучший вариант наверное будет такой:
  • перебираем все/ каждый контейнер;
  • читаем из каждого сертификат;
  • если нужного Нам сертификата в контейнерах нет, то производим импорт *.pfx;
  • если нужного Нам сертификата в хранилище нет, то выполняем -absorb, либо просто им финалим.
Offline Андрей *  
#23 Оставлено : 24 мая 2025 г. 23:01:42(UTC)
Андрей *

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

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

Сказал «Спасибо»: 574 раз
Поблагодарили: 2304 раз в 1805 постах
Автор: nickm Перейти к цитате
Автор: Андрей * Перейти к цитате
может уже беспокоится, вдруг контейнер снесут из реестра\папки...

Ну да, сценариев может быть множество - пользователь и сертификат может удалить и контейнер, прав Ему хватит. Но тупо, при каждом логине в УЗ импортировать *.pfx вообще не вариант;

Автор: Андрей * Перейти к цитате
а скрипт не узнает... читать имя контейнера, с которым связан сертификат -> проверять, есть ли он в реестре\папке.

Лучший вариант наверное будет такой:
  • перебираем все/ каждый контейнер;
  • читаем из каждого сертификат;
  • если нужного Нам сертификата в контейнерах нет, то производим импорт *.pfx;
  • если нужного Нам сертификата в хранилище нет, то выполняем -absorb, либо просто им финалим.


да вот решение...
Техническую поддержку оказываем тут
Наша база знаний
Offline nickm  
#24 Оставлено : 25 мая 2025 г. 11:39:53(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: nickm Перейти к цитате
Лучший вариант наверное будет такой:
  • перебираем все/ каждый контейнер;
  • читаем из каждого сертификат;
  • если нужного Нам сертификата в контейнерах нет, то производим импорт *.pfx;
  • если нужного Нам сертификата в хранилище нет, то выполняем -absorb, либо просто им финалим.

Что-то типа такого:
Код:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

::Укажем отпечаток сертификата для поиска
set "thumbprint=b19982a8d10f9f3265007e06f808e7c97fbf4b67"

::Сменим исполняемый каталог
pushd "%ProgramFiles%\Crypto Pro\CSP\"

::Переберём все доступные контейнеры и выполним проверку и импорт при необходимости
For /F "usebackq Tokens=1* Delims=:" %%a In (`csptest.exe -keyset -enum_cont -fqcn -verifyc ^| FindStr "\\" ^2^>nul`) Do (
call :CheckCertInCont "%%a"
)

::Здесь принимаем решение импортировать *.pfx или нет 
if DEFINED CertExist (echo."Сертификат с указанным отпечатком в контейнерах присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!") else (echo."Сертификат с указанным отпечатком в контейнерах отсутствует. Импорт *.pfx будет произведен!")

:: Чтобы не выполнять дополнительные проверки на привязанность сертификата к доступному контейнеру просто выполняем "автоустановку"
::csptest.exe -absorb -certs -autoprov

::Вернёмся в сохранённый каталог
popd

::Завершим работу сценария
goto :EOF

::Процедура проверки
:CheckCertInCont

::Попробуем найти отпечаток сертификата в доступных контейнерах
For /F "usebackq Tokens=1,2* Delims=:" %%a In (`certmgr.exe -list -cont "%~1" ^| FindStr %thumbprint% ^2^>nul`) Do (
set "CertExist=%%b"
)


Offline Николай1987  
#25 Оставлено : 25 мая 2025 г. 17:26:10(UTC)
Николай1987

Статус: Участник

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

Да, доделал проверку на наличие сертификата и на наличие закрытого контейнера
Offline Николай1987  
#26 Оставлено : 25 мая 2025 г. 17:43:56(UTC)
Николай1987

Статус: Участник

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

и сделали они в итоге self extracted 7z с автоустановкой...
и разослали его по серверам,
прописали в политики при входе,
забэкапили на флешки и для надежности в base64 распечатку в сейф положили..
и стало всем ..хорошо...
удаляй, запускай, работай...



Да согласен, придётся 7z.exe делать, т.к политика на запуск PowerShell скриптов заблокирована по умолчанию
либо

Install-Module -Name PS2EXE -Force
Invoke-PS2EXE -InputFile "d:\1\3\3.ps1" -OutputFile "3.exe"
Offline nickm  
#27 Оставлено : 25 мая 2025 г. 17:47:36(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: Николай1987 Перейти к цитате
Да, доделал проверку на наличие сертификата и на наличие закрытого контейнера

С сообществом "доделкой" не поделитесь?

Автор: Николай1987 Перейти к цитате
Да согласен, придётся 7z.exe делать, т.к политика на запуск PowerShell скриптов заблокирована по умолчанию

Так внутри архива те же сценарии, не?
Offline Николай1987  
#28 Оставлено : 25 мая 2025 г. 17:59:35(UTC)
Николай1987

Статус: Участник

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

Вообщем чтобы запустить .ps1 нужно сначало запустить .bat с кодом cmd /k powershell -ExecutionPolicy Bypass -File "d:\1\3\3.ps1"
тоесть в самораспаковывающем архиве 7zip будет два файла
один .bat
другой .ps1

тоесть скрипты powershell .ps1 по умолчанию отключен запуск в windows и с помощью скрипта .ps1 нельзя отключить проверку так как он же не запуститься

Отредактировано пользователем 25 мая 2025 г. 18:01:04(UTC)  | Причина: Не указана

Offline Николай1987  
#29 Оставлено : 25 мая 2025 г. 18:49:32(UTC)
Николай1987

Статус: Участник

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

скинул Вам в личку, Вы получили? nickm
Offline nickm  
#30 Оставлено : 25 мая 2025 г. 19:48:32(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 2,654

Сказал(а) «Спасибо»: 614 раз
Поблагодарили: 458 раз в 432 постах
Автор: Николай1987 Перейти к цитате
тоесть в самораспаковывающем архиве 7zip будет два файла
один .bat
другой .ps1

Можно и одним *.cmd отделаться, вариант предложен выше. Да и *.ps1 можно из *.cmd создать и выполнить.

И да, "HasPrivateKey" у сертификата не означает, что контейнер существует в системе "здесь и сейчас", а лишь говорит о том, что сертификат когда-то связывали с контейнером, поэтому строить проверки на этом свойстве бессмысленно + при некоторых сценариях будет плодиться такая сущность в системе, как контейнеры.

Лучше используйте выше предложенный вариант с перебором доступных пользователю контейнеров и вычиткой из него нужного сертификата.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.