Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Массовая установка сертификата организации на всех пользователей windows
Статус: Активный участник
Группы: Участники
Зарегистрирован: 31.05.2016(UTC) Сообщений: 2,655
Сказал(а) «Спасибо»: 614 раз Поблагодарили: 459 раз в 433 постах
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 14.05.2025(UTC) Сообщений: 12 
|
Автор: nickm  Автор: Николай1987  2 способ можно Для обеспечения доступа к ключу можно нафантазировать несколько способов, попробуем... Когда ключ доступен на некоторых зарегистрированных носителях, например: Когда ключ не требуется "размножать" и он доступен в "единственном" экземпляре: - использовать токен на сервере (можно предположить, что это самый безопасный сценарий использования ключа); - использовать сетевой диск; - использовать флэш-накопитель; Когда ключ требуется "размножать" и он доступен во "множественных" экземплярах: - использовать выше указанный каталог "КриптоПро" в профиле пользователя "\\HDIMAGE"; - использовать реестр "КриптоПро" в профиле пользователя "\\REGISTRY"; Установку сертификата из уже доступного контейнера пользователю, тем более в Вашем сценарии он без ПИН'а, можно осуществлять командой, например: Код:"%ProgramFiles%\Crypto Pro\CSP\csptest.exe" -absorb -certs -autoprov
Когда требуется заморочиться импортом из *.pfx - команду Вы уже знаете, как ограничить исполнение этой команды одним разом, то один из возможных вариантов Вам уже был предложен, просто созданием и проверкой файла-флага, можно придумать и др. способы, например чтение личного хранилища и поиск сертификата по отпечатку: Код:@echo off
SetLocal EnableExtensions EnableDelayedExpansion
For /F "Tokens=1,2* Delims=:" %%a In ('"%ProgramFiles%\Crypto Pro\CSP\certmgr.exe" -list -store uMy ^| FindStr b19982a8d10f9f3265007e06f808e7c97fbf4b67 ^2^>nul') Do (
set "CertExist=%%b"
)
if DEFINED CertExist (echo."Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!") else (echo."Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!")
Ну допустим установленый сертификат в личные находит по отпечатку, но если закртый контейнер для этого сертификата не установлен то не сработает скрипт. нужно делать проверку как то по закрытому контейнеру? как сделать проверку по закрытому контейнеру по отпечатку?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 14.05.2025(UTC) Сообщений: 12 
|
$currentSid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value Write-Host "Текущий SID: $currentSid" $regPath = "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\5465000653 30654542" if (Test-Path -Path $regPath) { Write-Host "Раздел реестра уже существует:" -ForegroundColor Yellow Write-Host $regPath -ForegroundColor Yellow Write-Host "Выполнение скрипта прекращено." -ForegroundColor Red exit 1 } else { Write-Host "Раздел реестра не найден, можно продолжать выполнение." -ForegroundColor Green } & "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\ & "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert
Проблема в том что генерируется новый раздел в реестре "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\pfx-607d2d86-7a18-7bb0-5b59-0da704e20ead" Проблема в том что генерируется новый раздел в реестре "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$currentSid\Keys\pfx-6e7e6bad-47b0-5ff9-0590-0fba6c4837fc" и тд
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 14.05.2025(UTC) Сообщений: 12 
|
Интересует не cmd а powershell # Включаем строгую проверку ошибок Set-StrictMode -Version Latest # Отпечаток сертификата для поиска $thumbprint = "5454a21545453883e4473154545454" # Проверяем наличие сертификата в хранилище "My" (личном хранилище пользователя) $certExists = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq $thumbprint } if ($certExists) { Write-Host "Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!" exit 1 } else { Write-Host "Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!" # Пример команды для импорта PFX (раскомментируйте и настройте при необходимости) # $pfxPath = "C:\path\to\certificate.pfx" # $password = ConvertTo-SecureString -String "your_password" -AsPlainText -Force # Import-PfxCertificate -FilePath $pfxPath -Password $password -CertStoreLocation Cert:\CurrentUser\My } & "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\ & "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert Этот скрипт проверяет по отпечатку но не проверяет есть ли закрытый контейнер для него Отредактировано пользователем 24 мая 2025 г. 21:41:20(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,743   Сказал «Спасибо»: 575 раз Поблагодарили: 2305 раз в 1806 постах
|
Автор: Николай1987  Интересует не cmd а powershell
# Включаем строгую проверку ошибок Set-StrictMode -Version Latest
# Отпечаток сертификата для поиска $thumbprint = "5454a21545453883e4473154545454"
# Проверяем наличие сертификата в хранилище "My" (личном хранилище пользователя) $certExists = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq $thumbprint }
if ($certExists) { Write-Host "Сертификат с указанным отпечатком в хранилище присутствует, скорее всего *.pfx был импортирован ранее. Импорт *.pfx производиться не будет!" exit 1 } else { Write-Host "Сертификат с указанным отпечатком в хранилище отсутствует. Импорт *.pfx будет произведен!" # Пример команды для импорта PFX (раскомментируйте и настройте при необходимости) # $pfxPath = "C:\path\to\certificate.pfx" # $password = ConvertTo-SecureString -String "your_password" -AsPlainText -Force # Import-PfxCertificate -FilePath $pfxPath -Password $password -CertStoreLocation Cert:\CurrentUser\My } & "C:\Program Files (x86)\Crypto Pro\CSP\certmgr.exe" -install -file D:\1\2\certorg.pfx -pfx -autodist -pin 1 -newpin '""' -carrier \\.\REGISTRY\ & "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -absorb -provtype 75 -cert
Этот скрипт проверяет по отпечатку но не проверяет есть ли закрытый контейнер для него понимаете, что из pfx при -install -> создаётся контейнер с закрытый ключом в указанном месте (считыватель) -> carrier -> реестр + устанавливается сертификат в Личное ? И что дальше делать? Создать файл\запись в реестре - по которым понимать, что скрипт успешно ранее установил всё нужное - с этим проблемы? Цитата: csptest.exe -absorb -provtype 75 -cert
из контейнеров устанавливает сертификаты и проставляет связь сертификат -> контейнер. ps 75 - это ГОСТ 2001, должно быть 80, либо универсальное -autoprov: Цитата:csptest -absorb -certs -autoprov |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,743   Сказал «Спасибо»: 575 раз Поблагодарили: 2305 раз в 1806 постах
|
ощущается как будто "требуется" ещё одна мини утилита под такой частный или нет случай, но странно, что такого нет в природе до сих пор или никому оно не нужно \ автоматизировали, по аналогии как было предложено... либо почитать справку к текущим утилитам, вдруг всё реализовано, но не явно просматривается связь что сделать\выполнить. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,743   Сказал «Спасибо»: 575 раз Поблагодарили: 2305 раз в 1806 постах
|
а что мешает контейнер (папку с файлами) (или из zip извлекать) копировать в папку... в профиль пользователя при входе и проставлять ссылку через csptest.exe -absorb -certs -autoprov
? Задача минутная, а прошло 10 дней уже...
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 31.05.2016(UTC) Сообщений: 2,655
Сказал(а) «Спасибо»: 614 раз Поблагодарили: 459 раз в 433 постах
|
Автор: Николай1987  Ну допустим установленный сертификат в личные находит по отпечатку, но если закрытый контейнер для этого сертификата не установлен то не сработает скрипт. Что не сработает? Автор: Николай1987  Нужно делать проверку как то по закрытому контейнеру? Как сделать проверку по закрытому контейнеру по отпечатку? Зачем? Смотрите, сертификат ведь самостоятельно в хранилище не появляется, ведь этому какие-то события предшествуют, верно? А предшествует этому как раз следующие события: импорт из *.pfx (создание контейнера в реестре) и последующая команда установки сертификатов из доступных контейнеров. Вот Вам выше и предложен такой алгоритм.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,743   Сказал «Спасибо»: 575 раз Поблагодарили: 2305 раз в 1806 постах
|
C:\Users\ логин\AppData\Local\Crypto Pro\  Snimok ehkrana ot 2025-05-24 23-21-11.png (6kb) загружен 2 раз(а).вот... 3 папки - 3 ключа... но это не точно |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,743   Сказал «Спасибо»: 575 раз Поблагодарили: 2305 раз в 1806 постах
|
Автор: nickm  Автор: Николай1987  Ну допустим установленный сертификат в личные находит по отпечатку, но если закрытый контейнер для этого сертификата не установлен то не сработает скрипт. Что не сработает? Автор: Николай1987  Нужно делать проверку как то по закрытому контейнеру? Как сделать проверку по закрытому контейнеру по отпечатку? Зачем? Смотрите, сертификат ведь самостоятельно в хранилище не появляется, ведь этому какие-то события предшествуют, верно? А предшествует этому как раз следующие события: импорт из *.pfx (создание контейнера в реестре) и последующая команда установки сертификатов из доступных контейнеров. Вот Вам выше и предложен такой алгоритм. может уже беспокоится, вдруг контейнер снесут из реестра\папки... а скрипт не узнает... читать имя контейнера, с которым связан сертификат -> проверять, есть ли он в реестре\папке. |
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Массовая установка сертификата организации на всех пользователей windows
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close