Статус: Участник
Группы: Участники
Зарегистрирован: 25.06.2024(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 4 раз
|
Добрый день. Столкнулся со следующей проблемой: после смены промежуточного сертификата не удается создать запрос на перевыпуск сертификата Веб сервера/администратора, как на самом ЦС, так и на РА.
Лог событий:
$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 }
В Управление ключами загружен новый сертификат администратора ЦС.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.06.2024(UTC) Сообщений: 25
Сказал(а) «Спасибо»: 4 раз
|
Запросы формирую через Диспетчер УЦ.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,293   Откуда: Калининград Сказал «Спасибо»: 39 раз Поблагодарили: 583 раз в 560 постах
|
Здравствуйте.
А какая ошибка? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close