Я пытаюсь создать сценарий установки нашего локального агента CI / CD. Частично установка сертификатов
Powershell
Import-Certificate -FilePath self_signed_CA.cer -CertStoreLocation cert:\LocalMachine\root
Import-PfxCertificate -FilePath my_cert.pfx -CertStoreLocation cert:\CurrentUser\TrustedPublisher -Password $password
Import-PfxCertificate -FilePath my_cert.pfx -CertStoreLocation cert:\CurrentUser\My -Password $password
Выполнение signtool.exe
после этого
The following certificates were considered:
Issued to: <our company>
Issued by: <some ca>
Expires: <is valid>
SHA1 hash: <...>
Issued to: <...>
Issued by: <...>
Expires: <...>
SHA1 hash: <...>
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
Все это выполняется через удаленные сеансы PowerShell. В тот момент, когда я подключу RDP к машине с той же учетной записью, signtool.exe
начинает работать даже удаленно. Меня это сбивает с толку. Почему это происходит?
редактировать
Я могу воспроизвести это с помощью удаленного взаимодействия вручную вот так.
$cred = Get-Credential
$sess = New-PSSession -Credential $cred -Computername <computername>
Enter-PSSession -Session $sess
Я сократил количество шагов для воспроизведения до использования certutil.exe
(так что исключая signtool.exe
)
Итак, имея RDP сессия открыт для указанной машины. Я получаю следующее в пределах PSSession
> certutil -store -user my
my "Personal"
================ Certificate 0 ================
Serial Number: 01
Issuer: <...>
NotBefore: <...>
NotAfter: <...>
Subject: <...>
Non-root Certificate
Cert Hash(sha1): <...>
Key Container = <...>
Unique container name: <...>
Provider = Microsoft Software Key Storage Provider
Private key is NOT exportable
Signature test passed
CertUtil: -store command completed successfully.
Когда я выхожу из сеанса RDP и немного жду (<1 минуты), я получаю следующее в том же самом PSSession
> certutil -store -user my
my "Personal"
================ Certificate 0 ================
Serial Number: 01
Issuer: <...>
NotBefore: <...>
NotAfter: <...>
Subject: <...>
Non-root Certificate
Cert Hash(sha1): <...>
Key Container = <...>
Provider = Microsoft Software Key Storage Provider
Missing stored keyset
CertUtil: -store command completed successfully.
Образ этой виртуальной машины должен быть достаточно заблокирован, поэтому могут быть некоторые настройки или политики, мешающие тому, чего я пытаюсь достичь. Но пока не удалось выяснить, чем это может быть вызвано.
я нашел другой пост с аналогичными симптомами, но все задействованные учетные записи имеют право «Вход в качестве службы».