Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
- Windows SDK SignTool.exe (en düşük sürüm: 10.0.2261.755)
- .NET 8 Çalışma Zamanı
- Microsoft Visual C++ Yeniden Dağıtılabilir
- 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
- SignTool'u indirin ve yükleyin.
- .NET 8 Çalışma Zamanı'nı indirip yükleyin.
- Güvenilen İmzalama dlib paketini indirin ve yükleyin.
- Güvenilen İmzalama hesabınızı ve sertifika profilinizi sağlamak için bir JSON dosyası oluşturun.
- 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:
SignTool ve Windows Derleme Araçları NuGet'in en son sürümünü Microsoft.Windows.SDK.BuildTools adresinden indirin.
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:
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
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:
- x64 SignTool.exe için: .NET 8.0 Çalışma Zamanı indirme - Windows x64 yükleyicisi
- x86 SignTool.exe için: .NET 8.0 Çalışma Zamanı indirme - Windows x86 yükleyicisi
Güvenilen İmzalama dlib paketini indirme ve yükleme
Güvenilen İmzalama dlib paketini (.zip dosyası) indirip yüklemek için:
Güvenilen İmzalama dlib paketini indirin.
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:
Yeni bir JSON dosyası oluşturun (örneğin, metadata.json).
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:
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.
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.
GitHub Actions: Güvenilen İmzalama için GitHub eylemini kullanmayı öğrenmek için bkz . Güvenilen İmzalama - GitHub Market'te Eylemler . GitHub eylemini ayarlama ve kullanma yönergelerini tamamlayın.
Azure DevOps görevi: Güvenilen İmzalama Azure DevOps görevini kullanmak için bkz . Visual Studio Market'te Güvenilen İmzalama . Kurulum yönergelerini tamamlayın.
Authenticode için PowerShell: Güvenilen İmzalama için PowerShell'i kullanmak için bkz. PowerShell modülünü yüklemek için PowerShell Galerisi Güvenilen Oturum Açma.
Azure PowerShell - İş İçin Uygulama Denetimi CI ilkesi: Kod bütünlüğü (CI) ilkesi imzalama için Güvenilen İmzalama'yı kullanmak için Yeni CI ilkesi imzalama başlığı altındaki yönergeleri izleyin ve bkz. Az.CodeSigning PowerShell Modülü.
Güvenilen İmzalama SDK'sı: Kendi imzalama tümleştirmenizi oluşturmak için açık kaynak Güvenilir İmzalama SDK'mızı kullanabilirsiniz.
Azure.Developer.TrustedSigning.CryptoProvider: Hizmet uç noktası tümleştirmesini tüketiciden soyutlayan bir .NET şifreleme sağlayıcısı ile hizmetin tümleştirilmesini basitleştirir.