Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een ondertekend pakket biedt verificatiecontroles voor inhoudsintegriteit, die bescherming biedt tegen manipulatie van inhoud. De pakkethandtekening fungeert ook als de ultieme bron van informatie over de werkelijke oorsprong van het pakket en versterkt de echtheid van het pakket voor de consument. In deze handleiding wordt ervan uitgegaan dat u al een pakket hebt gemaakt.
Een certificaat voor ondertekening van programmacode ophalen
Geldige certificaten kunnen worden verkregen bij een openbare certificeringsinstantie, zoals:
De volledige lijst met certificeringsinstanties die door Windows worden vertrouwd, kan ook worden verkregen van http://aka.ms/trustcertpartners.
U kunt zelf uitgegeven certificaten gebruiken voor testdoeleinden. Pakketten die zijn ondertekend met zelf uitgegeven certificaten, worden echter niet geaccepteerd door NuGet.org. Meer informatie over het maken van een testcertificaat
Het certificaatbestand exporteren
Als uw certificaat is opgeslagen in een hardwaretoken, moet u het certificaat niet exporteren. Geef in plaats daarvan de vingerafdrukken van het SHA-2-familiecertificaat (vingerafdruk) op met behulp van de optie
--certificate-fingerprint <SHA-2fingerprint>(vervangen--certificate-path <PathToTheCertificate>)U kunt een bestaand certificaat exporteren naar een binaire DER-indeling met behulp van de wizard Certificaat exporteren.
U kunt het certificaat ook exporteren met behulp van de Export-Certificate PowerShell-opdracht.
Het pakket ondertekenen
Onderteken het pakket met dotnet nuget-teken (hiervoor is .NET 6.0.100 SDK of hoger vereist).
dotnet nuget sign MyPackage.nupkg --certificate-path <PathToTheCertificate> --timestamper <TimestampServiceURL>
or
Onderteken het pakket met nuget-teken (hiervoor is nuget.exe 4.6.0 of hoger vereist):
nuget sign MyPackage.nupkg -CertificatePath <PathToTheCertificate> -Timestamper <TimestampServiceURL>
Aanbeveling
De certificaatprovider biedt vaak ook een tijdstempelserver-URL die u kunt gebruiken voor het Timestamper optionele argument dat hierboven wordt weergegeven. Raadpleeg de documentatie en/of ondersteuning van uw provider voor die service-URL.
- U kunt een certificaat gebruiken dat beschikbaar is in het certificaatarchief of een certificaat uit een bestand gebruiken. Zie CLI-naslaginformatie voor nuget-teken.
- Ondertekende pakketten moeten een tijdstempel bevatten om ervoor te zorgen dat de handtekening geldig blijft wanneer het handtekeningcertificaat is verlopen. Anders produceert de tekenbewerking een waarschuwing.
- U kunt de handtekeningdetails van een bepaald pakket bekijken met nuget verify.
Het certificaat registreren op NuGet.org
Als u een ondertekend pakket wilt publiceren, moet u het certificaat eerst registreren bij NuGet.org. U hebt het certificaat nodig als een .cer bestand in een binaire DER-indeling.
- Meld u aan bij NuGet.org.
- Ga naar
Account settings(ofManage Organization>Edit Organizationals u het certificaat wilt registreren bij een organisatieaccount). - Vouw de
Certificatessectie uit en selecteerRegister new. - Blader en selecteer het certificaatbestand dat eerder is geëxporteerd.
Opmerking
- Eén gebruiker kan meerdere certificaten indienen en hetzelfde certificaat kan door meerdere gebruikers worden geregistreerd.
- Terwijl een gebruiker een of meer certificaten heeft geregistreerd, moeten alle pakketinzendingen zijn ondertekend met een van de certificaten. Zie Ondertekeningsvereisten voor uw pakket beheren op NuGet.org
- Gebruikers kunnen ook een geregistreerd certificaat uit het account verwijderen. Zodra een certificaat is verwijderd, mislukken nieuwe pakketten die zijn ondertekend met dat certificaat bij verzending. Bestaande pakketten worden niet beïnvloed.
Het pakket publiceren
U kunt het pakket nu publiceren naar NuGet.org. Zie Publicatiepakketten.
Een testcertificaat maken
U kunt zelf uitgegeven certificaten gebruiken voor testdoeleinden. Als u een zelf uitgegeven certificaat wilt maken, gebruikt u de New-SelfSignedCertificate PowerShell-opdracht.
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"
Met deze opdracht maakt u een testcertificaat dat beschikbaar is in het persoonlijke certificaatarchief van de huidige gebruiker. U kunt de certificaatopslag openen door certmgr.msc uit te voeren om het zojuist aangemaakte certificaat te bekijken.
Waarschuwing
NuGet.org accepteert geen pakketten die zijn ondertekend met zelf-uitgegeven certificaten.
Ondertekeningsvereisten voor uw pakket beheren op NuGet.org
Meld u aan bij NuGet.org.
Ga naar
Manage Packages
Als u de enige eigenaar van een pakket bent, bent u de vereiste ondertekenaar, dat wil gezegd, u kunt een van de geregistreerde certificaten gebruiken om uw pakketten te ondertekenen en te publiceren naar NuGet.org.
Als een pakket meerdere eigenaren heeft, kunnen de certificaten van elke eigenaar standaard worden gebruikt om het pakket te ondertekenen. Als mede-eigenaar van het pakket kunt u 'Any' vervangen door uzelf of een andere mede-eigenaar om als vereiste ondertekenaar te dienen. Als u een eigenaar aanmaakt die geen certificaat heeft geregistreerd, worden niet-ondertekende pakketten toegestaan.
Als de standaardoptie Any is geselecteerd voor een pakket waarin een eigenaar een certificaat heeft geregistreerd en een andere eigenaar geen certificaat heeft geregistreerd, accepteert NuGet.org een ondertekend pakket met een handtekening die is geregistreerd door een van de eigenaren of een niet-ondertekend pakket (omdat een van de eigenaren geen certificaat heeft geregistreerd).