Zarządzanie granicami zaufania pakietów
Podpisane pakiety nie wymagają zainstalowania żadnej konkretnej akcji; jeśli jednak zawartość została zmodyfikowana od momentu podpisania, instalacja zostanie zablokowana z powodu błędu NU3008.
Ostrzeżenie
Pakiety podpisane za pomocą niezaufanych certyfikatów są uznawane za niepodpisane i instalowane bez żadnych ostrzeżeń ani błędów, takich jak każdy inny niepodpisany pakiet.
Konfigurowanie wymagań dotyczących podpisu pakietu
Uwaga
Wymaga pakietów NuGet 4.9.0+ i Visual Studio w wersji 15.9 lub nowszej w systemie Windows
Możesz skonfigurować sposób weryfikowania podpisów pakietów przez klientów NuGet, ustawiając signatureValidationMode
wartość na require
w pliku nuget.config za pomocą nuget config
polecenia .
nuget.exe config -set signatureValidationMode=require
<config>
<add key="signatureValidationMode" value="require" />
</config>
Ten tryb sprawdzi, czy wszystkie pakiety są podpisane przez dowolny z certyfikatów zaufanych nuget.config
w pliku. Ten plik umożliwia określenie, którzy autorzy i/lub repozytoria są zaufani na podstawie odcisku palca certyfikatu.
Autor pakietu zaufania
Aby ufać pakietom opartym na podpisie autora, użyj trusted-signers
polecenia , aby ustawić author
właściwość w pliku nuget.config.
nuget.exe trusted-signers Add -Name MyCompanyCert -CertificateFingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 -FingerprintAlgorithm SHA256
<trustedSigners>
<author name="MyCompanyCert">
<certificate fingerprint="CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
Napiwek
nuget.exe
Użyj polecenia verify, aby uzyskać SHA256
wartość odcisku palca certyfikatu.
Ufaj wszystkim pakietom z repozytorium
Aby ufać pakietom opartym na podpisie repozytorium, użyj repository
elementu :
<trustedSigners>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...."
hashAlgorithm="SHA256"
allowUntrustedRoot="false" />
</repository>
</trustedSigners>
Ufaj właścicielom pakietów
Podpisy repozytorium zawierają dodatkowe metadane, aby określić właścicieli pakietu podczas przesyłania. Pakiety z repozytorium można ograniczyć na podstawie listy właścicieli:
<trustedSigners>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...."
hashAlgorithm="SHA256"
allowUntrustedRoot="false" />
<owners>microsoft;nuget</owners>
</repository>
</trustedSigners>
Jeśli pakiet ma wielu właścicieli, a każdy z tych właścicieli znajduje się na liście zaufanych, instalacja pakietu zakończy się pomyślnie.
Niezaufane certyfikaty główne
W niektórych sytuacjach można włączyć weryfikację przy użyciu certyfikatów, które nie łączą się z zaufanym katalogiem głównym na komputerze lokalnym. Możesz użyć atrybutu allowUntrustedRoot
, aby dostosować to zachowanie.
Certyfikaty repozytorium synchronizacji
Repozytoria pakietów powinny ogłaszać certyfikaty, których używają w indeksie usługi. W końcu repozytorium zaktualizuje te certyfikaty, np. po wygaśnięciu certyfikatu. W takim przypadku klienci z określonymi zasadami będą wymagać aktualizacji konfiguracji w celu uwzględnienia nowo dodanego certyfikatu. Możesz łatwo uaktualnić zaufanych osób podpisujących skojarzonych z repozytorium przy użyciu nuget.exe
polecenia synchronizacji zaufanych osób podpisujących.
Dokumentacja schematu
Pełne odwołanie do schematu zasad klienta można znaleźć w dokumentacji nuget.config