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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline GREGORY113  
#1 Оставлено : 8 июля 2024 г. 13:16:07(UTC)
GREGORY113

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

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

Сказал(а) «Спасибо»: 3 раз
Добрый день. Столкнулся со следующей проблемой: после смены промежуточного сертификата не удается создать запрос на перевыпуск сертификата Веб сервера/администратора, как на самом ЦС, так и на РА.

Лог событий:

$Config = 'localhost\Организация'
$Value = 'localhost\Организация'
$KeyContainerName = '39406ddf-bbde-484a-9966-05670df2808c'
$ProviderType = '80'
$ProviderName = 'Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider'
$KeyLength = '512'
$HashAlgorithm = '1.2.643.7.1.1.2.2'
$CertTemplate = '1.2.643.2.2.46.0.4'
$WebSite = '1'
$HttpsPort = '443'

function GetCAInfo
{
param($Config, $ClientCredentials)

$pairs = $Config -split '\\'
if($pairs.length -ne 2)
{
$pairs = $Config -split '#'
}

if($pairs.length -ne 2)
{
throw ('Не удается выделить имя ЦС для строки подключения:' + $Config)
}

$authHost = $pairs[0]
$authName = $pairs[1]

[CryptoPro.PkiClient.AssemblyResolver]::Load('CertificateService.Client') > $null;
if($ClientCredentials -ne $null)
{
$submit = (new-object CertificateService.Client.WcfCaClientProvider ($authHost, $ClientCredentials)).CreateCertRequest()
}
else
{
$submit = (new-object CertificateService.Client.DcomCaClientProvider ($authHost)).CreateCertRequest()
}

$caInfo = $submit.GetCAInfo($authName)
return $caInfo
}

function Prompt
{
param([scriptblock]$WouldPromtDelegate, $PromptMessage, $ErrorMessage, [switch]$ShouldSkip = $True, [switch]$ShouldRetry = $True)

$p = New-Module -AsCustomObject -ScriptBlock {
$Caption = 'Предупреждение'
$Message = "Внимание! $PromptMessage. Прервать выполнение мастера?"

[System.Management.Automation.Host.ChoiceDescription[]] $Choices = @()
$Abort = $null
$Skip = $null
$Retry = $null
$Default = $null

function Prompt() {
return $Host.UI.PromptForChoice($Caption,$Message,$Choices,$Default)
}

Export-ModuleMember -Variable * -Function * -Verbose:$false
}

$AbortDescription = New-Object System.Management.Automation.Host.ChoiceDescription '&Abort - &Прервать','Прервать выполнение мастера.'
$RetryDescription = New-Object System.Management.Automation.Host.ChoiceDescription '&Retry - &Повторить','Повторно проверить.'
$SkipDescription = New-Object System.Management.Automation.Host.ChoiceDescription '&Skip - &Пропустить','Попробовать продолжить выполнение мастера.'

$p.Choices += $AbortDescription
if($ShouldRetry) {
$p.Choices += $RetryDescription
}

if($ShouldSkip -eq $True) {
$p.Choices += $SkipDescription
}

$p.Abort = $p.Choices.IndexOf($AbortDescription)
if($ShouldRetry) {
$p.Retry = $p.Choices.IndexOf($RetryDescription)
}
else {
$p.Retry = $null
}

if($ShouldSkip -eq $True) {
$p.Skip = $p.Choices.IndexOf($SkipDescription)
}
else {
$p.Skip = $null
}

$p.Default = $p.Abort

$keepTrying = $true
while ($keepTrying -eq $true) {
$p.Message = "Внимание! $PromptMessage. Прервать выполнение мастера?"
try {
$keepTrying = Invoke-Command -Scriptblock $WouldPromtDelegate
}
catch {
$p.Message = "Внимание! $ErrorMessage. Прервать выполнение мастера?"
}

if ($keepTrying -eq $true) {
$answer = $p.Prompt()
switch ($answer) {
$p.Abort { Write-Verbose -message 'Выполнение мастера прервано пользователем.'; exit }
$p.Retry { continue }
$p.Skip { $keepTrying = $false }
}
}
}
}

function ValidateKeyAcquired
{
param($Config, $ClientCredentials)

$isCaSignCertKeyAquired = {
return (GetCAInfo -Config $Config -ClientCredentials $ClientCredentials).CAState -eq 0
}

Prompt `
-WouldPromtDelegate $isCaSignCertKeyAquired `
-PromptMessage 'Сертификат не может быть изготовлен - ни один из ключей подписи центра сертификации в данный момент не загружен.' `
-ErrorMessage 'Сертификат не может быть изготовлен - Центр Сертификации недоступен'
}

function GetReverseX509DectinguishedName
{
param($Xdn)
return New-Object System.Security.Cryptography.X509Certificates.X500DistinguishedName($xdn.Name, 0)
}

function CreateDistinguishedName
{
param(
$Name,
$Attrs)

$dn = New-Object -TypeName 'CryptoPro.CertEncode.DistinguishedName' -ArgumentList $Name, $false -Property $Attrs
return $dn.Xdn
}

ValidateKeyAcquired -Config $Config
$CASubjectName = (
Get-Item -Path 'CA:\Организация').SubjectName
$WebCertSubjectName =
GetReverseX509DectinguishedName -Xdn $CASubjectName
$WebProfile =
CreateDistinguishedName -Name $WebCertSubjectName -Attrs @{'CommonName' = 'Веб-сервер'; 'DnsName' = @('ca'); }
Set-Variable -Name 'WebCertReqConfig' -Value $Value
$WebRawRequest =
New-PkiRequest -MachineKeySet -KeyContainerName $KeyContainerName -ProviderType $ProviderType -ProviderName $ProviderName -KeyLength $KeyLength -HashAlgorithm $HashAlgorithm -CertTemplate $CertTemplate -ExistingKey:$False -Silent:$False -PromptForMedia -AlwaysSetPin
$RawResponse =
Send-PkiRequest -RawRequest $WebRawRequest -Config $WebCertReqConfig -ProfileName $WebProfile |
Receive-PkiResponse -Config $WebCertReqConfig
$WebCertPath = $null
if(($RawResponse -ne $null) -and (($RawResponse -is [int]) -eq $False))
{
$WebCertPath =
Install-PkiResponse -RawResponse $RawResponse -MachineKeySet
Start-Sleep -Seconds '5'
}
$WebX509Certificate = $null
if($WebCertPath -ne $null)
{
$WebX509Certificate =
Get-Item -Path $WebCertPath
}
if(($RawResponse -ne $null) -and (($RawResponse -is [int]) -eq $False))
{
ConvertTo-PkiContainer -RawResponse $RawResponse -MachineKeySet -KeyContainerName $KeyContainerName -ProviderType $ProviderType -ProviderName $ProviderName |
Write-Debug
}
$EnabledCertPath = $null
if($WebCertPath -ne $null)
{
Start-Sleep -Seconds '5'
$EnabledCertPath =
Enable-PkiServer -CertPath $WebCertPath -WebSite $WebSite -HttpsPort $HttpsPort -PassThru
}

В Управление ключами загружен новый сертификат администратора ЦС.


Offline GREGORY113  
#2 Оставлено : 8 июля 2024 г. 13:16:47(UTC)
GREGORY113

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

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

Сказал(а) «Спасибо»: 3 раз
Запросы формирую через Диспетчер УЦ.
Offline Захар Тихонов  
#3 Оставлено : 8 июля 2024 г. 13:18:35(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,217
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 38 раз
Поблагодарили: 571 раз в 548 постах
Здравствуйте.

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