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.
Bu makalede, PowerShell araçlarını kullanarak uygulama paketi imzalama sertifikası oluşturma ve bu sertifikaya güvenme açıklanmaktadır (CMD araçları için buraya bakın). UWP uygulamalarını paketlemek ve masaüstü uygulamalarını paketlemek için Visual Studio kullanmanız önerilir, ancak uygulamanızı geliştirmek için Visual Studio kullanmadıysanız uygulamayı el ile paketlemeye devam edebilirsiniz.
Önkoşullar
Paketlenmiş veya paketlenmemiş bir uygulama
AppxManifest.xml dosyası içeren bir uygulama. Son uygulama paketini imzalamak için kullanılacak sertifikayı oluştururken bildirim dosyasına başvurmanız gerekir. Bir uygulamayı el ile paketleme hakkında ayrıntılı bilgi için bkz. MakeAppx.exe aracıyla uygulama paketi oluşturma.Ortak Anahtar Altyapısı (PKI) Cmdlet'leri
İmzalama sertifikanızı oluşturmak ve dışarı aktarmak için PKI cmdlet'lerine ihtiyacınız vardır. Daha fazla bilgi için bkz. Ortak Anahtar Altyapısı Cmdlet'leri.
Kendinden imzalı sertifika oluşturma
Otomatik olarak imzalanan sertifika, uygulamayı Mağaza'da yayımlamaya hazır olmadan önce test etmek için kullanışlıdır. Otomatik olarak imzalanan bir sertifika oluşturmak için bu bölümde açıklanan adımları izleyin.
Uyarı
Otomatik olarak imzalanan bir sertifika oluşturduğunuzda ve kullandığınızda yalnızca sertifikanızı yükleyen ve güvenen kullanıcılar uygulamanızı çalıştırabilir. Bu, test için kolayca uygulanabilir ancak ek kullanıcıların uygulamanızı yüklemesini engelleyebilir. Uygulamanızı yayımlamaya hazır olduğunuzda, güvenilir bir kaynak tarafından verilen bir sertifika kullanmanızı öneririz. Bu merkezi güven sistemi, uygulama ekosisteminin kullanıcıları kötü amaçlı aktörlerden korumak için doğrulama düzeylerine sahip olmasını sağlamaya yardımcı olur.
Paketlenmiş uygulamanızın konusunu belirleme
Uygulama paketinizi imzalamak için sertifika kullanmak için, sertifikadaki "Konu" öğesinin uygulamanızın bildirimindeki "Yayımcı" bölümüyle eşleşmesi gerekir .
Örneğin, uygulamanızın AppxManifest.xml dosyasındaki "Kimlik" bölümü şöyle görünmelidir:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
Bu durumda "Publisher", sertifikanızı oluşturmak için kullanılması gereken "CN=Contoso Software, O=Contoso Corporation, C=US" şeklindedir.
Sertifika oluşturmak için New-SelfSignedCertificate kullanma
Otomatik olarak imzalanan bir sertifika oluşturmak için New-SelfSignedCertificate PowerShell cmdlet'ini kullanın. New-SelfSignedCertificate'in özelleştirme için çeşitli parametreleri vardır, ancak bu makalenin amacı doğrultusunda SignTool ile çalışacak basit bir sertifika oluşturmaya odaklanacağız. Bu cmdlet'in diğer örnekleri ve kullanımları için bkz. New-SelfSignedCertificate.
Önceki örnekteki AppxManifest.xml dosyasına bağlı olarak, sertifika oluşturmak için aşağıdaki söz dizimini kullanmanız gerekir. Yükseltilmiş bir PowerShell isteminde:
New-SelfSignedCertificate -Type Custom -KeyUsage DigitalSignature -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -FriendlyName "Your friendly name goes here"
Bazı parametrelerle ilgili aşağıdaki ayrıntılara dikkat edin:
KeyUsage: Bu parametre sertifikanın ne için kullanılabileceğini tanımlar. Otomatik imzalama sertifikası için bu parametre DigitalSignature olarak ayarlanmalıdır.
TextExtension: Bu parametre aşağıdaki uzantılar için ayarları içerir:
Genişletilmiş Anahtar Kullanımı (EKU): Bu uzantı, sertifikalı ortak anahtarın kullanılabilmesi için ek amaçları gösterir. Otomatik imzalama sertifikası için bu parametre, sertifikanın kod imzalama için kullanılacağını gösteren "2.5.29.37={text}1.3.6.1.5.5.7.3.3" uzantı dizesini içermelidir.
Temel Kısıtlamalar: Bu uzantı, sertifikanın bir Sertifika Yetkilisi (CA) olup olmadığını gösterir. Otomatik imzalama sertifikası için bu parametre, sertifikanın bir son varlık (CA değil) olduğunu belirten "2.5.29.19={text}" uzantı dizesini içermelidir.
Bu komut çalıştırıldıktan sonra sertifika oluşturulur ve Kullanıcı Kişisel sertifika deposuna eklenir. Komutun sonucu sertifikanın parmak izini de üretir.
Aşağıdaki komutları kullanarak sertifikanızı bir PowerShell penceresinde görüntüleyebilirsiniz:
Set-Location Cert:\CurrentUser\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint
Bu, Kullanıcı Kişisel sertifika deposundaki tüm sertifikaları görüntüler.
Bu sertifikayla imzalanan bir uygulamayı yüklemek için sertifikanın Yerel Makine Güvenilen Kişiler sertifika deposuna aktarılması gerekir.
Sertifikayı PFX dosyasına aktarma
Yeni oluşturulan sertifikayı Yerel Makine Güvenilen Kişiler sertifika deposuna aktarmak için, önce Export-PfxCertificate cmdlet'ini kullanarak bir Kişisel Bilgi Değişimi (PFX) dosyasına aktarmanız gerekir.
Export-PfxCertificate kullanırken parola oluşturup kullanmanız veya parola olmadan dosyaya erişebilecek kullanıcıları veya grupları belirtmek için "-ProtectTo" parametresini kullanmanız gerekir. "-Password" veya "-ProtectTo" parametresini kullanmazsanız hatanın görüntüleneceğini unutmayın. Kullanıcı hesabınız bir etki alanı denetleyicisi tarafından desteklendiğinde "-ProtectTo" yararlı olurken genel kullanım için "-Password" önerilir.
Parola kullanımı
$password = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $password
ProtectTo kullanımı
Export-PfxCertificate -cert Cert:\CurrentUser\My\<Certificate Thumbprint> -FilePath <FilePath>.pfx -ProtectTo <Username or group name>
Sertifikayı Yerel Makine Güvenilen Kişiler deposuna aktarma
Sertifikayı bir PFX dosyasına aktardığınıza göre, yönetici PowerShell oturumundan Import-PfxCertificate cmdlet'ini kullanarak sertifikayı Yerel Makine Güvenilen Kişiler deposuna aktarabilirsiniz.
Import-PfxCertificate -CertStoreLocation "Cert:\LocalMachine\TrustedPeople" -Password $password -FilePath <FilePath>.pfx
Artık sertifika güvenilir olduğuna göre, uygulama paketinizi SignTool ile imzalamaya hazırsınız. El ile paketleme işleminin sonraki adımı için bkz. SignTool kullanarak uygulama paketini imzalama.
Güvenlikle ilgili dikkat edilmesi gerekenler
yerel makine sertifika depolarına sertifika ekleyerek bilgisayardaki tüm kullanıcıların sertifika güvenini etkilersiniz. Sistem güvenini tehlikeye atmak için kullanılmalarını önlemek için artık gerekli olmadığında bu sertifikaları kaldırmanız önerilir.