Udostępnij przez


Tworzenie certyfikatu na potrzeby podpisywania pakietów

W tym artykule wyjaśniono, jak utworzyć i zaufać certyfikatowi podpisywania pakietów aplikacji przy użyciu narzędzi programu PowerShell (w przypadku narzędzi CMD zobacz tutaj). Zaleca się używanie programu Visual Studio do tworzenia pakietów aplikacji platformy UWP i tworzenia pakietów aplikacji klasycznych, ale nadal można ręcznie spakować aplikację, jeśli nie używasz programu Visual Studio do tworzenia aplikacji.

Wymagania wstępne

Tworzenie certyfikatu z podpisem własnym

Certyfikat z podpisem własnym jest przydatny do testowania aplikacji przed rozpoczęciem publikowania go w Sklepie. Wykonaj kroki opisane w tej sekcji, aby utworzyć certyfikat z podpisem własnym.

Uwaga / Notatka

Podczas tworzenia i używania certyfikatu z podpisem własnym tylko użytkownicy, którzy instalują i ufają certyfikatowi, mogą uruchomić aplikację. Jest to łatwe do zaimplementowania na potrzeby testowania, ale może uniemożliwić instalowanie aplikacji przez dodatkowych użytkowników. Gdy wszystko będzie gotowe do opublikowania aplikacji, zalecamy użycie certyfikatu wystawionego przez zaufane źródło. Ten system scentralizowanego zaufania pomaga zapewnić, że ekosystem aplikacji ma poziomy weryfikacji, aby chronić użytkowników przed złośliwymi podmiotami.

Określanie tematu spakowanej aplikacji

Aby użyć certyfikatu do podpisania pakietu aplikacji, "Podmiot" w certyfikacie musi być zgodny z sekcją "Wydawca" w manifeście aplikacji.

Na przykład sekcja "Tożsamość" w pliku AppxManifest.xml aplikacji powinna wyglądać następująco:

  <Identity Name="Contoso.AssetTracker" 
    Version="1.0.0.0" 
    Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>

"Wydawca", w tym przypadku, to "CN=Contoso Software, O=Contoso Corporation, C=US", który musi być używany do tworzenia certyfikatu.

Użyj New-SelfSignedCertificate, aby utworzyć certyfikat

Użyj polecenia cmdlet New-SelfSignedCertificate programu PowerShell, aby utworzyć certyfikat z podpisem własnym. New-SelfSignedCertificate ma kilka parametrów dostosowywania, ale na potrzeby tego artykułu skupimy się na utworzeniu prostego certyfikatu, który będzie działać z narzędziem SignTool. Aby uzyskać więcej przykładów i zastosowań tego cmdletu, zobacz New-SelfSignedCertificate.

Na podstawie pliku AppxManifest.xml z poprzedniego przykładu należy użyć następującej składni do utworzenia certyfikatu. W wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień:

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"

Zwróć uwagę na następujące szczegóły dotyczące niektórych parametrów:

  • KeyUsage: ten parametr definiuje, dla którego certyfikatu może być używany. W przypadku certyfikatu z podpisem własnym ten parametr powinien być ustawiony na DigitalSignature.

  • TextExtension: Ten parametr zawiera ustawienia następujących rozszerzeń:

    • Rozszerzone użycie klucza (EKU): to rozszerzenie wskazuje dodatkowe cele, dla których może być używany certyfikowany klucz publiczny. W przypadku certyfikatu z podpisem własnym ten parametr powinien zawierać ciąg rozszerzenia "2.5.29.37={text}1.3.6.1.5.5.7.3.3", który wskazuje, że certyfikat ma być używany do podpisywania kodu.

    • Ograniczenia podstawowe: to rozszerzenie wskazuje, czy certyfikat pełni funkcję organu certyfikacji (CA). W przypadku certyfikatu z podpisem własnym ten parametr powinien zawierać ciąg rozszerzenia "2.5.29.19={text}", który wskazuje, że certyfikat jest jednostką końcową (a nie urzędem certyfikacji).

Po uruchomieniu tego polecenia certyfikat zostanie utworzony i dodany do magazynu certyfikatów osobistych użytkownika. Wynik polecenia spowoduje również wygenerowanie odcisku palca certyfikatu.

Certyfikat można wyświetlić w oknie programu PowerShell przy użyciu następujących poleceń:

Set-Location Cert:\CurrentUser\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint

Spowoduje to wyświetlenie wszystkich certyfikatów w magazynie certyfikatów osobistych użytkownika.

Aby zainstalować aplikację podpisaną przy użyciu tego certyfikatu, certyfikat musi zostać zaimportowany do magazynu certyfikatów Zaufane osoby komputera lokalnego.

Eksportowanie certyfikatu do pliku PFX

Aby zaimportować nowo utworzony certyfikat do magazynu certyfikatów Zaufane osoby komputera lokalnego, należy najpierw wyeksportować go do pliku wymiany informacji osobistych (PFX) przy użyciu polecenia cmdlet Export-PfxCertificate .

W przypadku używania polecenia Export-PfxCertificate należy utworzyć i użyć hasła lub użyć parametru "-ProtectTo", aby określić, którzy użytkownicy lub grupy mogą uzyskać dostęp do pliku bez hasła. Pamiętaj, że jeśli nie używasz parametru "-Password" lub "-ProtectTo", zostanie wyświetlony błąd. "-Password" jest zalecane w przypadku ogólnego użycia, podczas gdy funkcja "-ProtectTo" jest przydatna, gdy konto użytkownika jest wspierane przez kontroler domeny.

Użycie hasła

$password = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText 
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $password

ChrońDo użycia

Export-PfxCertificate -cert Cert:\CurrentUser\My\<Certificate Thumbprint> -FilePath <FilePath>.pfx -ProtectTo <Username or group name>

Zaimportuj certyfikat do magazynu Zaufane osoby na komputerze lokalnym

Po wyeksportowaniu certyfikatu do pliku PFX możesz zaimportować go do magazynu "Zaufane osoby" na komputerze lokalnym, używając polecenia cmdlet Import-PfxCertificate z sesji administracyjnej programu PowerShell.

Import-PfxCertificate -CertStoreLocation "Cert:\LocalMachine\TrustedPeople" -Password $password -FilePath <FilePath>.pfx

Teraz, gdy certyfikat jest zaufany, możesz przystąpić do podpisywania pakietu aplikacji za pomocą narzędzia SignTool. Aby poznać kolejny krok w procesie ręcznego pakowania, zobacz Podpisywanie pakietu aplikacji za pomocą narzędzia SignTool.

Zagadnienia dotyczące zabezpieczeń

Dodanie certyfikatu do magazynów certyfikatów komputera lokalnego wpływa na zaufanie certyfikatów wszystkich użytkowników na komputerze. Zaleca się usunięcie tych certyfikatów, gdy nie są już konieczne, aby zapobiec ich użyciu w celu naruszenia zaufania systemu.