Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/signpath.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ commit (`github.sha`), so the source matches the build's origin metadata.
## Test signing and production review

Run with `test` first. Only this ephemeral GitHub-hosted runner imports the
configured public self-signed test certificate into its current-user trust
stores. Each signed file must have a valid timestamped signature from exactly
configured public self-signed test certificate into its machine trust stores
to avoid interactive user-store prompts. Each signed file must have a valid timestamped signature from exactly
that certificate. Test outputs are labelled `-Test-Signed`; they are for
onboarding verification and are not publicly trusted distribution packages.
Do not install this certificate on end-user computers.
Expand Down
5 changes: 4 additions & 1 deletion scripts/trust_signpath_test_certificate.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ try {
}
# Only the ephemeral GitHub-hosted test job trusts this public certificate.
# Release jobs never execute this script and retain normal Windows trust.
# The user Root store can show an interactive security prompt.
# GitHub-hosted Windows runners are disposable and run as administrator.
foreach ($storeName in @('Root', 'TrustedPublisher')) {
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, 'CurrentUser')
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, 'LocalMachine')
try {
Write-Host "Importing the public test certificate into LocalMachine/$storeName"
$store.Open('ReadWrite')
$store.Add($certificate)
} finally {
Expand Down
Loading