Я пытаюсь создать самозаверяющий сертификат подписи кода через powershell, чтобы подписать сборку.NET через Visual Studio 2017 с ним как pfx впоследствии. Pfx экспортируется как сертификат, защищенный доменом, с использованием аргумента -ProtectTo. Код выглядит следующим образом:
$pfxLocation = [System.IO.Path]::Combine([System.Environment]::GetFolderPath("Desktop"),"Certificates\")
New-Item -ItemType Directory -Path $pfxLocation -Force
$certificate = New-SelfSignedCertificate '
-CertStoreLocation "Cert:\LocalMachine" '
-FriendlyName "This is a code-signing certificate" '
-Subject "CN=Me" '
-Type CodeSigningCert '
-NotBefore ([System.DateTime]::Today) '
-NotAfter ([System.DateTime]::Today.AddMonths(6).AddDays(1)) '
-KeyExportPolicy Exportable
Move-Item -Destination "Cert:\LocalMachine\Root" -Path $certificate.PSPath
$newCertificateLocation = "Cert:\LocalMachine\Root\" + $certificate.Thumbprint
Get-ChildItem $newCertificateLocation | Export-PfxCertificate -FilePath ([System.IO.Path]::Combine($pfxLocation,"certificate.pfx")) -ProtectTo "Domain\Domain group 1", "Domain\Domain group 2"
Однако Visual Studio по-прежнему требует несуществующего пароля.
Пароль от пользователя домена из одной из доменных групп, указанной с помощью аргумента -ProtectTo, отклоняется:
Итак, какой пароль он запрашивает и зачем он вообще нужен? Поскольку он защищен доменом, у него не должно быть и точно, на что я нацелился.
ОБНОВИТЬ
В принципе, идея заключается в использовании вывода pfx для подписи кода с автоматическими агентами сборки, для которых отсутствие пароля является своего рода обязательным.