Я работаю над сценарием, который экспортирует сертификат с сервера A в PFX, копирует его на сервер B и импортирует PFX на сервер.Я использую следующий код для шифрования пароля из простого текста в защищенную строку:
$pfxPass = "PassW0rd"
$File = "D:\backup_conf\Password.txt"
[Byte[]] $key = (1..16)
$pfxSecure = $pfxPass | ConvertTo-SecureString -AsPlainText -Force
$pfxSecure | ConvertFrom-SecureString -key $key | Out-File $File
dir Cert:\LocalMachine\my | Where-Object { $_.NotAfter -clike "*2019*"} | % { certutil.exe -f -exportPFX -p $pfxSecure $_.Thumbprint D:\backup_conf\certificates\$($_.Thumbprint).pfx }
PFX создан, и я вижу, что Password.txt содержит строку хеша.PFX и Password.txt были скопированы на новый сервер, и я использовал следующий код для импорта:
$file = "D:\backup_conf\Password.txt"
[Byte[]] $key = (1..16)
$pfxSecure = Get-Content $File | ConvertTo-SecureString -Key $key
$certs = (Get-ChildItem -recurse -Path "D:\backup_conf\certificates" -Include *.pfx)|%{Import-PfxCertificate $_.FullName -Exportable -Password $pfxSecure -CertStoreLocation Cert:\LocalMachine\My }
Этот код завершается ошибкой:
Импорт-PfxCertificate: для файла PFX, который вы пытаетесь импортировать, требуется либо другой пароль, либо членство в субъекте Active Directory, которому он защищен.
Есть идеи, почему он не работает?