Udostępnij za pośrednictwem


Konfigurowanie integracji podpisywania w celu korzystania z zaufanego podpisywania

Zaufane podpisywanie obsługuje obecnie następujące integracje podpisywania:

  • SignTool
  • Funkcja GitHub Actions
  • Zadania usługi Azure DevOps
  • Program PowerShell dla aplikacji Authenticode
  • Azure PowerShell (Kontrola aplikacji dla zasad ciągłej integracji dla firm)
  • Zaufany zestaw SDK podpisywania

Stale pracujemy nad obsługą większej liczby integracji podpisywania. Aktualizujemy obsługiwaną listę integracji, gdy jest dostępnych więcej integracji.

W tym artykule wyjaśniono, jak skonfigurować każdą obsługiwaną integrację podpisywania zaufanego podpisywania.

Konfigurowanie narzędzia SignTool do korzystania z zaufanego podpisywania

W tej sekcji wyjaśniono, jak skonfigurować narzędzie SignTool do użycia z zaufanym podpisywaniem.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, potrzebne są następujące elementy:

  • Zaufane konto podpisywania, weryfikacja tożsamości i profil certyfikatu.
  • Przypisanie indywidualne lub grupowe roli podpisywania profilu certyfikatu zaufanego.

Podsumowanie kroków

  1. Pobierz i zainstaluj narzędzie SignTool.
  2. Pobierz i zainstaluj środowisko uruchomieniowe platformy .NET 8.
  3. Pobierz i zainstaluj pakiet dlib zaufanego podpisywania.
  4. Utwórz plik JSON, aby udostępnić konto zaufanego podpisywania i profil certyfikatu.
  5. Aby podpisać plik, wywołaj narzędzie SignTool.

Pobieranie i instalowanie narzędzia SignTool

Zaufane podpisywanie wymaga używania narzędzia SignTool do podpisywania plików w systemie Windows, w szczególności wersji SignTool.exe w zestawie WINDOWS 10 SDK 10.0.2261.755 lub nowszym. Pełny zestaw SDK systemu Windows 10 można zainstalować za pośrednictwem Instalator programu Visual Studio lub pobrać i zainstalować go oddzielnie.

Aby pobrać i zainstalować narzędzie SignTool:

  1. Pobierz najnowszą wersję narzędzi SignTool i Windows Build Tools NuGet na stronie Microsoft.Windows.SDK.BuildTools.

  2. Zainstaluj narzędzie SignTool z zestawu Windows SDK (minimalna wersja: 10.0.2261.755, 20348 windows SDK nie jest obsługiwana z użyciem biblioteki dlib).

Inną opcją jest użycie najnowszego pliku nuget.exe do pobrania i wyodrębnienia najnowszego pakietu NuGet narzędzi Windows SDK Build Tools przy użyciu programu PowerShell:

  1. Pobierz nuget.exe , uruchamiając następujące polecenie pobierania:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Pobierz i wyodrębnij pakiet NuGet narzędzi NuGet dla zestawu SDK systemu Windows, uruchamiając następujące polecenie instalacji:

    .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
    

Pobierz i zainstaluj środowisko uruchomieniowe platformy .NET 8.0

Składniki używane przez narzędzie SignTool do interfejsu z zaufanym podpisywaniem wymagają zainstalowania środowiska uruchomieniowego platformy .NET 8.0 Potrzebujesz tylko podstawowego środowiska uruchomieniowego platformy .NET 8.0. Upewnij się, że środowisko uruchomieniowe platformy jest instalowane prawidłowo w zależności od wersji narzędzia SignTool, którą zamierzasz uruchomić. Możesz też po prostu zainstalować obie te elementy

Na przykład:

Pobieranie i instalowanie pakietu dlib zaufanego podpisywania

Aby pobrać i zainstalować pakiet dlib zaufanego podpisywania (plik .zip):

  1. Pobierz pakiet dlib zaufanego podpisywania.

  2. Wyodrębnij skompresowaną zawartość biblioteki dlib zaufanego podpisywania i zainstaluj ją w węźle podpisywania w wybranym katalogu. Węzeł musi być węzłem, w którym używasz narzędzia SignTool do podpisywania plików.

Inną opcją jest pobranie pakietu dlib zaufanego podpisywania za pośrednictwem narzędzia NuGet podobnego do pakietu NuGet zestawu SDK systemu Windows:

.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x

Tworzenie pliku JSON

Aby podpisać się przy użyciu zaufanego podpisywania, należy podać szczegóły profilu zaufanego podpisywania i certyfikatu utworzonego w ramach wymagań wstępnych. Te informacje można podać w pliku JSON, wykonując następujące kroki:

  1. Utwórz nowy plik JSON (na przykład metadata.json).

  2. Dodaj określone wartości dla profilu zaufanego konta podpisywania i certyfikatu do pliku JSON. Aby uzyskać więcej informacji, zobacz plik metadata.sample.json dołączony do pakietu dlib zaufanego podpisywania lub skorzystaj z następującego przykładu:

    {
      "Endpoint": "<Trusted Signing account endpoint>",
      "CodeSigningAccountName": "<Trusted Signing account name>",
      "CertificateProfileName": "<Certificate profile name>",
      "CorrelationId": "<Optional CorrelationId value>"
    }
    

    Wartość identyfikatora "Endpoint" URI musi być identyfikatorem URI zgodnym z regionem, w którym utworzono konto zaufanego podpisywania i profil certyfikatu podczas konfigurowania tych zasobów. W tabeli przedstawiono regiony i odpowiadające im identyfikatory URI.

    Region (Region) Pola klas regionów Wartość identyfikatora URI punktu końcowego
    Wschodnie stany USA EastUS https://eus.codesigning.azure.net
    Zachodnie stany USA 3 [1] WestUS3 https://wus3.codesigning.azure.net
    Zachodnio-środkowe stany USA WestCentralUS https://wcus.codesigning.azure.net
    Zachodnie stany USA 2 WestUS2 https://wus2.codesigning.azure.net
    Europa Północna NorthEurope https://neu.codesigning.azure.net
    West Europe WestEurope https://weu.codesigning.azure.net

    1 Pole opcjonalne "CorrelationId" jest nieprzezroczystą wartością ciągu, którą można podać w celu skorelowania żądań podpisywania z własnymi przepływami pracy, takimi jak identyfikatory kompilacji lub nazwy maszyn.

Uwierzytelnianie

To zadanie wykonuje uwierzytelnianie przy użyciu wartości DefaultAzureCredential, która próbuje wykonać serię metod uwierzytelniania w kolejności. Jeśli jedna z metod zakończy się niepowodzeniem, spróbuje uruchomić następną, dopóki uwierzytelnianie nie powiedzie się.

Każdą metodę uwierzytelniania można wyłączyć indywidualnie, aby uniknąć niepotrzebnych prób.

Na przykład w przypadku uwierzytelniania za pomocą elementu EnvironmentCredential wyłącz inne poświadczenia przy użyciu następujących danych wejściowych:

ExcludeEnvironmentCredential: false ExcludeManagedIdentityCredential: true ExcludeSharedTokenCacheCredential: true ExcludeVisualStudioCredential: true ExcludeVisualStudioCodeCredential: true ExcludeAzureCliCredential: true ExcludeAzurePowershellCredential: true ExcludeInteractiveBrowserCredential: true

Podobnie, jeśli używasz na przykład elementu AzureCliCredential , chcemy pominąć próbę uwierzytelnienia przy użyciu kilku metod, które pojawią się przed nią w określonej kolejności.

Podpisywanie pliku przy użyciu narzędzia SignTool

Aby wywołać narzędzie SignTool w celu podpisania pliku:

  1. Zanotuj miejsce, w którym znajdują się narzędzia SDK Build Tools, wyodrębniony plik Azure.CodeSigning.Dlib i plik metadata.json (z wcześniejszych sekcji).

  2. Zastąp symbole zastępcze w następującej ścieżce określonymi wartościami zanotowaną w kroku 1:

    & "<Path to SDK bin folder>\x64\signtool.exe" sign /v /debug /fd SHA256 /tr "http://timestamp.acs.microsoft.com" /td SHA256 /dlib "<Path to Trusted Signing dlib bin folder>\x64\Azure.CodeSigning.Dlib.dll" /dmdf "<Path to metadata file>\metadata.json" <File to sign>
    
  • Zarówno wersja x86, jak i x64 narzędzia SignTool są dołączone do zestawu Windows SDK. Pamiętaj, aby odwołać się do odpowiedniej wersji Azure.CodeSigning.Dlib.dll. Powyższy przykład dotyczy wersji x64 narzędzia SignTool.
  • Upewnij się, że używasz zalecanej wersji zestawu Windows SDK w zależnościach wymienionych na początku tego artykułu lub plik dlib nie będzie działać.

Certyfikaty zaufanego podpisywania mają trzydniową ważność, dlatego sygnatura czasowa ma kluczowe znaczenie dla ciągłej pomyślnej weryfikacji podpisu poza okresem ważności trzech dni. Zaufane podpisywanie zaleca użycie publicznego urzędu sygnatury czasowej RSA firmy Microsoft zaufanego podpisywania: http://timestamp.acs.microsoft.com/.

Korzystanie z innych integracji podpisywania z zaufanym podpisywaniem

Do skonfigurowania integracji rejestracji z zaufanym podpisywaniem można również użyć następujących narzędzi lub platform.

  • GitHub Actions: aby dowiedzieć się, jak używać akcji usługi GitHub do zaufanego podpisywania, zobacz Zaufane podpisywanie — akcje w witrynie GitHub Marketplace. Wykonaj instrukcje dotyczące konfigurowania i używania akcji usługi GitHub.

  • Zadanie usługi Azure DevOps: Aby użyć zadania Zaufane podpisywanie usługi Azure DevOps, zobacz Zaufane logowanie w witrynie Visual Studio Marketplace. Wykonaj instrukcje dotyczące konfiguracji.

  • Program PowerShell for Authenticode: aby użyć programu PowerShell do zaufanego podpisywania, zobacz Trusted Signing in Galeria programu PowerShell to install the PowerShell module (Zaufane logowanie w Galeria programu PowerShell w celu zainstalowania modułu programu PowerShell).

  • Azure PowerShell — zasady ciągłej integracji w usłudze App Control dla firm: Aby użyć zaufanego podpisywania na potrzeby podpisywania zasad integralności kodu, postępuj zgodnie z instrukcjami w temacie Logowanie się do nowych zasad ciągłej integracji i zobacz Moduł Az.CodeSigning programu PowerShell.

  • Zaufany zestaw SDK podpisywania: aby utworzyć własną integrację podpisywania, możesz użyć naszego zestawu SDK zaufanego podpisywania typu open source. Pamiętaj, że ta wersja zestawu SDK jest wyświetlana jako nieznajdowana na liście. Nadal jest obsługiwana i będzie obsługiwana po wydaniu nowszego zestawu SDK.