Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 2.0
»
При регистрации ЦР на ЦС значения "Name" и "Hostname" меняются местами
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Всем добрый день! Написал скрипт по автоматизированному развертыванию КриптоПро УЦ 2.0. Версия УЦ: 2.0.6094. Все разворачивается на одной машине. ОС: Windows Server 2016. КриптоПро CSP 5.0 R2. Sql Server 2016 Express. Код развертывания: Код:trap [System.Exception] {
throw $_.InnerException
trap {
Write-Host -ForegroundColor Red -Object "Some errors occured. Exiting"
return;
}
continue;
}
gci "C:\Program Files\Crypto Pro\CC2\PowerShellModules\CryptoPro.CertificateService" -File:$true -Filter:"cryptopro*.dll" | % {Add-Type -Path $_.FullName} # Импортируем библиотеки
gci "C:\Program Files\Crypto Pro\CC2\PowerShellModules\CryptoPro.PkiClient" -File:$true -Filter:"cryptopro*.dll" | % {Add-Type -Path $_.FullName} # Импортируем библиотеки
gci "C:\Program Files\Crypto Pro\CC2\PowerShellModules\CryptoPro.RegistrationService" -File:$true -Filter:"cryptopro*.dll" | % {Add-Type -Path $_.FullName} # Импортируем библиотеки
"C:\Program Files\Crypto Pro\CC2\PowerShellModules" | % {$env:PSModulePath +="; $_"} # Прописываем путь до powershell модулей
Import-Module CryptoPro.PkiClient -ErrorAction Stop # Испортируем модуль CryptoPro.PkiClient
Import-Module CryptoPro.CertificateService -ErrorAction Stop # Испортируем модуль CryptoPro.CertificateService
Import-Module CryptoPro.RegistrationService -ErrorAction Stop # Испортируем модуль CryptoPro.RegistrationService
New-Alias -Name certutil2 -Value (gci -Recurse -File:$true -Filter:"Certutil2.exe" -Path "C:\Program Files\Crypto Pro\CC2").FullName # Честно, смысла создавать alias нет, так как при установке certutil2 будет использоваться только при загрузке ключей УЦ, но все же сделаю :)
New-PkiRequest ` # Создание запроса на сертификат ЦР
-SubjectName:([CryptoPro.CertEncode.CPX500DistinguishedName]::new("CN=MYRA")) ` #
-CertTemplate:"PkiClient" ` # ЖТЯИ.00078-01 90 02. PkiClient - краткое название идентификатора OID шаблона сертификатов TLS-клиент инфраструктуры УЦ. По этому шаблону происходит создание запроса на сертификат ЦР
-KeyContainerName:"\\.\REGISTRY\MYRAKey" ` # Название контейнера ключа ЭП
-ExistingKey:$false ` # У нас нет ключа ЦР
-MachineKeySet:$true ` # Хранить будем сертификат в LocalMachine
-ExportableKey:$true ` # Пускай будет экпортируемый
-Base64:$true ` # Сохраним в base64 (aka PEM)
-OutFile:"C:\Users\Администратор\ForCA\reqs\racli.req" ` # Путь к файлу запроса
-Format:"PKCS10" # Формаз запроса - PKCS#10
Install-CA ` # Устанавливаем роль ЦС
-SqlInstance:".\CPCS" ` # Экземлпляр SQL
-SqlDatabaseName:"CertificateService.Database" ` # Название БД
-WebSite:1 ` # № веб-сайта (Default web site)
-KeepDatabase:$false ` # Не сохраняем сущесвующую БД
-AppPool:"CAAppPool" # Название пула приложений. Вообще, если не указывать, то оно будет CAAppPool, но у меня был опыт настойки УЦ через консоль, и порой приложение попадало в другой пул, если не указывать в явном виде
New-CALicense –SerialNumber:"C020R-02030-01AG5-3EMU1-4PQGQ" –Licensee:"-" # ЖТЯИ.00078-01 90 02. Серийныйы номер временной лицензии КриптоПро УЦ
New-Item ` # Создание экземпляра службы сертификатов
-Path:"CA:\" ` #
-Subordinate:$false ` # Создаем корневой УЦ
-SubjectName:([CryptoPro.CertEncode.CPX500DistinguishedName]::new("CN=MYCA")) ` # Если это делать через остнастку mmc, то потребуется вводить ИНН и ОГРН, а в консоли - не требуется :)
-ItemType:"NewAuthorityPara" ` #
-KeyExportable:$true # Можно экпортировать ключи УЦ
New-Item ` # Создание администратора ЦС
-Account:($env:COMPUTERNAME+"\Администратор") ` # Будет использоваться учетка локального админа
-ItemType:"NewAuthPersonPara" ` #
-Register:$false ` # Пользователя не нужно регистрировать
-Name:"MYCAAdmin" ` # Вводим имя админа ЦС. Странно, что недоступен параметр -SubjectName... Переписывать модуль не хочется...
-Password:"SuperMegaNanoSecurePass" ` # Пароль от учетки админа
-Path:"CA:\MYCA\AuthPerson" #
New-CACertificate ` # Создание сертификата ЦС
-Path:"CA:\MYCA\AuthPerson\MYCAAdmin" ` # Указываем админа ЦС
-ParentPath:"CA:\MYCA" ` # Указываем сам ЦС
-DeleteExistingRequest:$true ` # Удаляем на всякий предыдущий запрос
-ExistingKey:$false ` # Ключ ранее не создавался
-KeyContainerName:"\\.\REGISTRY\MYCAKey" ` # Название контейнера ключа ЭП
-Binary:$false ` # Base64
-Format:"Pkcs10" #
certutil2 -config "localhost\MYCA" -loadKey 0 CertSign CrlSign -runas ($env:COMPUTERNAME+"\Администратор") -runaspsw "Qwe11354" #Грузим ключ
(Get-Item 'CA:\MYCA').SubjectName | % {$temp = [CryptoPro.CertEncode.DistinguishedName]::new($_); $temp.DnsName = "localhost"; $temp.CommonName="Веб-сервер"} # Создаем DistinguishedName для веб-сервера IIS
New-PkiRequest ` # Создаем запрос на сертификат веб-сервера
-SubjectName:$temp.Xdn ` # Указываем SubjectName
-KeyContainerName:"\\.\REGISTRY\WS" ` # Название контейнера ключа ЭП
-ExistingKey:$false ` # Ключ ранее не создавался
-ProviderType:80 ` #
-MachineKeySet:$true ` #
-ExportableKey:$true ` #
-Base64:$true ` #
-CertTemplate:"PkiServer" ` #
-OutFile:"C:\Users\Администратор\ForCA\reqs\ws.req" ` #
-Format:"Pkcs10" #
Send-PkiRequest ` # Отправка запроса на сертификат веб-сервера УЦ MYCA
-CertTemplate:"PkiServer" ` #
-Config:"localhost\MYCA" ` #
-InFile:"C:\Users\Администратор\ForCA\reqs\ws.req" | ` #
Receive-PkiResponse ` # Получение ответа от ЦС
-Config:"localhost\MYCA" ` #
-OutFile:"C:\Users\Администратор\ForCA\certs\ws.p7b" ` #
-Base64:$true | ` #
Install-PkiResponse | ` # Установка
Enable-PkiServer -WebSite 1 #
Send-PkiRequest ` # Выпуск сертификата ЦР
-InFile:"C:\Users\Администратор\ForCA\reqs\racli.req" `
-Config:"localhost\MYCA" `
-CertTemplate:"PkiClient" | `
Receive-PkiResponse `
-Config:"localhost\MYCA" `
-OutFile:"C:\Users\Администратор\ForCA\certs\racli.p7b" `
-Base64:$true
New-Item `
-Path:"CA:\MYCA\RegAuthority\" ` # Регистрация ЦР
-ProfileName:(Get-Item 'CA:\MYCA\').SubjectName ` #
-Name:"MYRA" ` #
-HasAIA:$true ` #
-HasCDP:$true ` #
-Account ($env:COMPUTERNAME+"\Администратор") ` #
-register:$false ` #
-hostname:"localhost" ` #
-Password:"SuperMegaNanoSecurePass" #
New-Item ` # Установка TLS сертификата ЦР
-Path:"CA:\MYCA\RegAuthority\MYRA\Certificate" ` #
-CertFile:"C:\Users\Администратор\ForCA\certs\racli.p7b" ` #
-Credential ([System.Management.Automation.PSCredential]::new{ # Я попробовал через консоль ввести креды -работает. А так: поставщик не поддерживает креды ...
($env:COMPUTERNAME+"\Администратор"), #
(ConvertTo-SecureString "SuperMegaNanoSecurePass" -AsPlainText -Force) #
}) #
# Далее подробно расписывать команды уже не имеет смысмла. Все повторяется
Install-RA -SqlInstance:".\CPCS"
Add-CAReference –AuthorityName:"MYCA" -Url:"https://localhost/CA" –ClientCertificate:(gi "Cert:\LocalMachine\My\365858B00B356C8BA2F5155E5356F4F9FEDEEFCE")
Ping-CA -AuthorityName:"MYCA"
New-PkiRequest -CertTemplate:"User" -OutFile:"C:\Users\Администратор\ForCA\reqs\admin.req" -SubjectName:([CryptoPro.CertEncode.CPX500DistinguishedName]::new("CN=MYRAOper")) -ExportableKey:$true -KeyContainerName:"\\.\REGISTRY\raadmin" -ExistingKey:$false # Запрос на сертификат оператора ЦР
Send-PkiRequest -Config:"localhost\MYCA" -InFile:"C:\Users\Администратор\ForCA\reqs\admin.req" -CertTemplate:"User" | Receive-PkiResponse -OutFile:"C:\Users\Администратор\ForCA\certs\admin.p7b" -Base64:$true
New-Item -Path:"RA:\" -Name:"RAAdmin" -ItemType:"User"
New-Item -Path:"RA:\MYRAAdm" -CertFile:"C:\Users\Администратор\ForCA\certs\admin.p7b"
После регистрации ЦР на ЦС имя ЦР ( Name) становится localhost, а hostname - "MYRA", хотя при установке явно прописывал иначе... Подскажите, пожалуйста, в чем может быть проблема? Отредактировано пользователем 2 марта 2022 г. 15:49:15(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Локализовал ошибку: Если из команды Код:New-Item `
-Path:"CA:\MYCA\RegAuthority\" ` # Регистрация ЦР
-ProfileName:(Get-Item 'CA:\MYCA\').SubjectName ` # Указывал этот параметр согласно ЖТЯИ.00078-01 90 02
-Name:"MYRA" ` #
-HasAIA:$true ` #
-HasCDP:$true ` #
-Account ($env:COMPUTERNAME+"\Администратор") ` #
-register:$false ` #
-hostname:"localhost" ` #
-Password:"SuperMegaNanoSecurePass" #
убрать -ProfileName, то все работает отлично. Т.е команда выглядит так: Код:New-Item `
-Path:"CA:\MYCA\RegAuthority\" ` # Регистрация ЦР
#-ProfileName:(Get-Item 'CA:\MYCA\').SubjectName ` # Убрал и все заработало нормально
-Name:"MYRA" ` #
-HasAIA:$true ` #
-HasCDP:$true ` #
-Account ($env:COMPUTERNAME+"\Администратор") ` #
-register:$false ` #
-hostname:"localhost" ` #
-Password:"SuperMegaNanoSecurePass" #
Отредактировано пользователем 2 марта 2022 г. 11:01:53(UTC)
| Причина: Не указана |
|
|
|
|
Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 2.0
»
При регистрации ЦР на ЦС значения "Name" и "Hostname" меняются местами
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close