Aracılığıyla paylaş


Güvenilen İmzalama'yı kullanmak için imzalama tümleştirmelerini ayarlama

Güvenilen İmzalama şu anda aşağıdaki imzalama tümleştirmelerini destekler:

  • SignTool
  • GitHub İşlemleri
  • Azure DevOps görevleri
  • Authenticode için PowerShell
  • Azure PowerShell (İş İçin Uygulama Denetimi CI ilkesi)
  • Güvenilen İmzalama SDK'sı

Daha fazla imzalama tümleştirmesini desteklemek için sürekli çalışıyoruz. Daha fazla tümleştirme kullanılabilir olduğunda desteklenen tümleştirme listesini güncelleştiririz.

Bu makalede desteklenen güvenilen imzalama tümleştirmelerinin nasıl ayarlanacağı açıklanmaktadır.

Güvenilir İmzalama'yı kullanmak için SignTool'ı ayarlama

Bu bölümde, Güvenilir İmzalama ile kullanmak üzere SignTool'un nasıl ayarlanacağı açıklanmaktadır.

Önkoşullar

Bu makaledeki adımları tamamlamak için şunlar gerekir:

  • Güvenilir İmzalama hesabı, kimlik doğrulaması ve sertifika profili.
  • Güvenilen İmzalama Sertifikası Profili İmzalayan rolünün bireysel veya grup ataması.
  • Windows 10 Sürüm 1809/Ekim 2018 Güncelleştirmesi veya daha yenisi, Windows 11 (tüm sürümler) veya Windows Server 2016 veya üzeri

Güvenilen İmzalama İstemci Araçları Yükleyicisi

SignTool.exe için Güvenilen İmzalama İstemcisi Araçları, aşağıdaki bileşenleri gerektiren bir kitaplık eklentisidir:

  1. Windows SDK SignTool.exe (en düşük sürüm: 10.0.2261.755)
  2. .NET 8 Çalışma Zamanı
  3. Microsoft Visual C++ Yeniden Dağıtılabilir
  4. Güvenilen İmzalama İstemcisi Dlib

Bu kurulumu basitleştirmek için bir Setup.exe ile birlikte indirilebilen bir MSI yükleyici paketi vardır.

Windows Paket Yöneticisi yükleme

Güvenilen İmzalama İstemci Araçları yükleyicisi Windows Paket Yöneticisi (WinGet) üzerinde kullanılabilir.

Not

winget, Windows 11 ve Windows 10'un modern sürümlerinde varsayılan olarak kullanılabilir. Ancak, Windows'un eski sürümlerinde yüklü olmayabilir. Yükleme yönergeleri için winget belgelerine bakın.

winget install -e --id Microsoft.Azure.TrustedSigningClientTools

Bu -e seçenek, resmi Güvenilir İmzalama İstemci Araçları paketinin yüklendiğinden emin olmaktır. Bu komut varsayılan olarak en son sürümü yükler. Bir sürüm belirtmek için komutuna istediğiniz sürümü içeren bir -v <version> ekleyin.

PowerShell'den yükleme

PowerShell kullanarak Güvenilen İmzalama İstemciSi Araçları'nı yüklemek için PowerShell'i yönetici olarak başlatın ve aşağıdaki komutu çalıştırın:

$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri "https://download.microsoft.com/download/6d9cb638-4d5f-438d-9f21-23f0f4405944/TrustedSigningClientTools.msi" -OutFile .\TrustedSigningClientTools.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I TrustedSigningClientTools.msi /quiet'; Remove-Item .\TrustedSigningClientTools.msi

El ile kurulum adımlarının özeti

  1. SignTool'u indirin ve yükleyin.
  2. .NET 8 Çalışma Zamanı'nı indirip yükleyin.
  3. Güvenilen İmzalama dlib paketini indirin ve yükleyin.
  4. Güvenilen İmzalama hesabınızı ve sertifika profilinizi sağlamak için bir JSON dosyası oluşturun.
  5. Bir dosyayı imzalamak için SignTool'a tıklayın.

SignTool'u indirme ve yükleme

Güvenilen İmzalama, Windows'ta dosyaları imzalamak için SignTool'un kullanılmasını gerektirir. Windows 10 SDK 10.0.2261.755 veya sonraki sürümlerde bulunan SignTool.exe sürümü. Visual Studio Yükleyicisi aracılığıyla tam Windows 10 SDK'sını yükleyebilir veya ayrı olarak indirip yükleyebilirsiniz.

SignTool'u indirmek ve yüklemek için:

  1. SignTool ve Windows Derleme Araçları NuGet'in en son sürümünü Microsoft.Windows.SDK.BuildTools adresinden indirin.

  2. Windows SDK'sından SignTool'u yükleme (en düşük sürüm: 10.0.2261.755, 20348 Windows SDK sürümü dlib'mizde desteklenmez).

Bir diğer seçenek de PowerShell kullanarak en son Windows SDK Derleme Araçları NuGet paketini indirmek ve ayıklamak için en son nuget.exe dosyasını kullanmaktır:

  1. Aşağıdaki indirme komutunu çalıştırarak nuget.exe indirin:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Aşağıdaki yükleme komutunu çalıştırarak Windows SDK Derleme Araçları NuGet paketini indirin ve ayıklayın:

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

.NET 8.0 Runtime'ı indirme ve yükleme

SignTool'un Güvenilen İmzalama ile arabirim oluştururken kullandığı bileşenler .NET 8.0 Çalışma Zamanı'nın yüklenmesini gerektirir Yalnızca çekirdek .NET 8.0 Çalışma Zamanına ihtiyacınız vardır. Çalıştırmak istediğiniz SignTool sürümüne bağlı olarak doğru platform çalışma zamanını yüklediğinizden emin olun. İsterseniz, her ikisini de yükleyebilirsiniz

Örneğin:

Güvenilen İmzalama dlib paketini indirme ve yükleme

Güvenilen İmzalama dlib paketini (.zip dosyası) indirip yüklemek için:

  1. Güvenilen İmzalama dlib paketini indirin.

  2. Güvenilen İmzalama dlib sıkıştırılmış içeriğini ayıklayın ve dizin seçiminizde imzalama düğümünüze yükleyin. Düğüm, dosyaları imzalamak için SignTool'un kullanıldığı düğüm olmalıdır.

Bir diğer seçenek de Windows SDK Derleme Araçları NuGet paketine benzer şekilde NuGet aracılığıyla Güvenilen İmzalama dlib paketini indirmektir:

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

JSON dosyası oluşturma

Güvenilen İmzalama'yı kullanarak oturum açmak için, önkoşulların bir parçası olarak oluşturulan Güvenilen İmzalama hesabınızın ve sertifika profilinizin ayrıntılarını sağlamanız gerekir. Bu adımları tamamlayarak bir JSON dosyasında bu bilgileri sağlarsınız:

  1. Yeni bir JSON dosyası oluşturun (örneğin, metadata.json).

  2. Güvenilir İmzalama hesabınızın ve sertifika profilinizin belirli değerlerini JSON dosyasına ekleyin. Daha fazla bilgi için Güvenilen İmzalama dlib paketinde bulunan metadata.sample.json dosyasına bakın veya aşağıdaki örneği kullanın:

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

    URI değeri, "Endpoint" bu kaynakları ayarlarken Güvenilen İmzalama hesabınızı ve sertifika profilinizi oluşturduğunuz bölgeyle uyumlu bir URI olmalıdır. Tabloda bölgeler ve ilgili URI'ler gösterilir.

    Bölge Bölge sınıfı alanları Uç nokta URI değeri
    Doğu ABD EastUS https://eus.codesigning.azure.net
    Batı ABD3 [1] WestUS3 https://wus3.codesigning.azure.net
    Batı Orta ABD WestCentralUS https://wcus.codesigning.azure.net
    Batı ABD 2 WestUS2 https://wus2.codesigning.azure.net
    Kuzey Avrupa NorthEurope https://neu.codesigning.azure.net
    Batı Avrupa WestEurope https://weu.codesigning.azure.net

    1 İsteğe bağlı "CorrelationId" alan, imza isteklerini derleme tanımlayıcıları veya makine adları gibi kendi iş akışlarınızla ilişkilendirmek için sağlayabileceğiniz opak bir dize değeridir.

Kimlik Doğrulaması

Bu Görev, bir dizi kimlik doğrulama yöntemini sırayla deneyen DefaultAzureCredential kullanarak kimlik doğrulaması gerçekleştirir. Bir yöntem başarısız olursa, kimlik doğrulaması başarılı olana kadar bir sonrakini dener.

Gereksiz girişimlerden kaçınmak için her kimlik doğrulama yöntemi ayrı ayrı devre dışı bırakılabilir.

Örneğin, Özellikle EnvironmentCredential ile kimlik doğrulaması yaparken, aşağıdaki girişlerle diğer kimlik bilgilerini devre dışı bırakın:

{
  "Endpoint": "<Trusted Signing account endpoint>",
  "CodeSigningAccountName": "<Trusted Signing account name>",
  "CertificateProfileName": "<Certificate profile name>",
  "CorrelationId": "<Optional CorrelationId value>",
  "ExcludeCredentials": [
     "ManagedIdentityCredential",
     "WorkloadIdentityCredential",
     "SharedTokenCacheCredential",
     "VisualStudioCredential",
     "VisualStudioCodeCredential",
     "AzureCliCredential",
     "AzurePowerShellCredential",
     "AzureDeveloperCliCredential",
     "InteractiveBrowserCredential"
 ]
}

Benzer şekilde, örneğin bir AzureCliCredential kullanıyorsanız, ondan önce gelen çeşitli yöntemlerle sırayla kimlik doğrulama girişimini atlamak istiyoruz.

Dosyayı imzalamak için SignTool kullanma

SignTool'un bir dosyayı imzalamasını çağırmak için:

  1. SDK Derleme Araçlarınızın, ayıklanan Azure.CodeSigning.Dlib dosyasının ve metadata.json dosyanızın nerede bulunduğunu (önceki bölümlerden) not edin.

  2. Aşağıdaki yoldaki yer tutucuları, 1. adımda not ettiğiniz belirli değerlerle değiştirin:

    & "<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>
    
  • SignTool'un hem x86 hem de x64 sürümü Windows SDK'sına dahildir. İlgili Azure.CodeSigning.Dlib.dll sürümüne başvurarak emin olun. Yukarıdaki örnek, SignTool'un x64 sürümüne yöneliktir.
  • Bu makalenin başında listelenen bağımlılıklarda önerilen Windows SDK sürümünü kullandığınızdan emin olun; aksi durumda dlib dosyası çalışmaz.

Güvenilen İmzalama sertifikaları üç günlük geçerlilik süresine sahiptir, bu nedenle zaman damgası, imzanın üç günlük geçerlilik süresinden sonra başarılı bir şekilde doğrulanması için kritik öneme sahiptir. Güvenilen İmzalama, Güvenilen İmzalama'nın Microsoft Genel RSA Zaman Damgalama Yetkilisi'nin kullanılmasını önerir: http://timestamp.acs.microsoft.com/.

Güvenilen İmzalama ile diğer imzalama tümleştirmelerini kullanma

Güvenilen İmzalama ile imzalama tümleştirmelerini ayarlamak için aşağıdaki araçları veya platformları da kullanabilirsiniz.