Podepsání balíčku NuGet
Podepsaný balíček umožňuje kontroly ověření integrity obsahu, které poskytují ochranu proti manipulaci s obsahem. Podpis balíčku slouží také jako jediný zdroj pravdy o skutečném původu balíčku a podporuje pravost balíčku pro spotřebitele. V této příručce se předpokládá, že jste už vytvořili balíček.
Získání podpisového certifikátu kódu
Platné certifikáty lze získat od veřejné certifikační autority, například:
Úplný seznam certifikačních autorit důvěryhodných systémem Windows lze získat také od http://aka.ms/trustcertpartnersspolečnosti .
Pro účely testování můžete použít certifikáty vystavené svým držitelem. Balíčky podepsané pomocí certifikátů vydaných svým držitelem ale NuGet.org nepřijímají. Další informace o vytvoření testovacího certifikátu
Export souboru certifikátu
Existující certifikát můžete exportovat do binárního formátu DER pomocí Průvodce exportem certifikátu.
Certifikát můžete také exportovat pomocí příkazu PowerShellu pro export certifikátu.
Podepsání balíčku
Podepište balíček pomocí podpisu nuget dotnet (vyžaduje sadu .NET 6.0.100 SDK nebo novější).
dotnet nuget sign MyPackage.nupkg --certificate-path <PathToTheCertificate> --timestamper <TimestampServiceURL>
nebo
Podepište balíček pomocí znaku nuget (vyžaduje nuget.exe 4.6.0 nebo novější):
nuget sign MyPackage.nupkg -CertificatePath <PathToTheCertificate> -Timestamper <TimestampServiceURL>
Tip
Zprostředkovatel certifikátů často také poskytuje adresu URL serveru časového razítka, kterou můžete použít pro Timestamper
volitelný argument uvedený výše. Informace o adrese URL této služby najdete v dokumentaci vašeho poskytovatele nebo podpoře.
- Můžete použít certifikát dostupný v úložišti certifikátů nebo použít certifikát ze souboru. Viz referenční informace k rozhraní příkazového řádku pro znaménko NuGet.
- Podepsané balíčky by měly obsahovat časové razítko, aby se zajistilo, že podpis zůstane platný při vypršení platnosti podpisového certifikátu. Jinak operace podepsání vytvoří upozornění.
- Podrobnosti podpisu daného balíčku můžete zobrazit pomocí ověření nugetu.
Registrace certifikátu na NuGet.org
Pokud chcete publikovat podepsaný balíček, musíte nejprve zaregistrovat certifikát v NuGet.org. Certifikát potřebujete jako .cer
soubor v binárním formátu DER.
- Přihlaste se k NuGet.org.
- Přejděte na
Account settings
stránku (neboManage Organization
>Edit Organization
pokud chcete certifikát zaregistrovat u účtu organizace). Certificates
Rozbalte oddíl a vyberteRegister new
.- Procházejte a vyberte soubor certficate, který jste vyexportovali dříve.
Poznámka:
- Jeden uživatel může odeslat více certifikátů a stejný certifikát může zaregistrovat více uživatelů.
- Jakmile má uživatel zaregistrovaný certifikát, musí být všechny budoucí odeslání balíčku podepsané jedním z certifikátů. Viz Správa požadavků na podepisování balíčku na NuGet.org
- Uživatelé také můžou z účtu odebrat zaregistrovaný certifikát. Po odebrání certifikátu se při odeslání nezdaří nové balíčky podepsané tímto certifikátem. Stávající balíčky nejsou ovlivněny.
Publikování balíčku
Teď jste připraveni balíček publikovat do NuGet.org. Viz Balíčky publikování.
Vytvoření testovacího certifikátu
Pro účely testování můžete použít certifikáty vystavené svým držitelem. Pokud chcete vytvořit certifikát vydaný vlastním držitelem, použijte příkaz New-SelfSignedCertificate PowerShellu.
New-SelfSignedCertificate -Subject "CN=NuGet Test Developer, OU=Use for testing purposes ONLY" `
-FriendlyName "NuGetTestDeveloper" `
-Type CodeSigning `
-KeyUsage DigitalSignature `
-KeyLength 2048 `
-KeyAlgorithm RSA `
-HashAlgorithm SHA256 `
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
-CertStoreLocation "Cert:\CurrentUser\My"
Tento příkaz vytvoří testovací certifikát dostupný v osobním úložišti certifikátů aktuálního uživatele. Úložiště certifikátů můžete otevřít spuštěním spuštění certmgr.msc
a zobrazit nově vytvořený certifikát.
Upozorňující
NuGet.org nepřijímá balíčky podepsané certifikáty vystavenými svým držitelem.
Správa požadavků na podepisování balíčku na NuGet.org
Přihlaste se k NuGet.org.
Přejděte na
Manage Packages
.
Pokud jste jediným vlastníkem balíčku, jste požadovaným podepisovačem, tj. k podepisování a publikování balíčků do NuGet.org můžete použít kterýkoli z registrovaných certifikátů.
Pokud má balíček více vlastníků, můžete k podepsání balíčku použít certifikáty vlastníka libovolného vlastníka. Jako spoluvlastník balíčku můžete "Any" přepsat sami sobě nebo jiným spoluvlastníkem, aby byl požadovaným podepisovačem. Pokud nastavíte vlastníka, který nemá zaregistrovaný žádný certifikát, budou povolené nepodepsané balíčky.
Podobně platí, že pokud je pro balíček vybrána výchozí možnost Any (Libovolný), ve které má jeden vlastník zaregistrovaný certifikát a jiný vlastník nemá zaregistrovaný žádný certifikát, NuGet.org přijme podepsaný balíček s podpisem registrovaným jedním z jeho vlastníků nebo nepodepsaným balíčkem (protože jeden z vlastníků nemá zaregistrovaný žádný certifikát).