Udostępnij za pośrednictwem


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