管理套件的信任界限
已簽署套件不需要任何特定動作就能安裝;不過,如果內容在簽署後已經過修改,就會顯示錯誤 NU3008 並禁止安裝。
警告
以不受信任的憑證簽署的套件,會視為未簽署,安裝時會如同其他未簽署的套件一樣不含任何警告或錯誤。
設定套件簽章需求
注意
需要在 Windows 上安裝 NuGet 4.9.0+ 及 Visual Studio 15.9 或更新版本
您可以透過使用 nuget config
命令將 nuget.config 檔案中的 signatureValidationMode
設定為 require
。
nuget.exe config -set signatureValidationMode=require
<config>
<add key="signatureValidationMode" value="require" />
</config>
此模式會驗證所有的套件都是由 nuget.config
檔案中任何信任的憑證簽署。 此檔案讓您可依據憑證的指紋指定信任哪一個作者及 (或) 存放庫。
信任套件作者
若要依據作者憑證信任套件,請使用 trusted-signers
命令設定 nuget.config 中的 author
屬性。
nuget.exe trusted-signers Add -Name MyCompanyCert -CertificateFingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 -FingerprintAlgorithm SHA256
<trustedSigners>
<author name="MyCompanyCert">
<certificate fingerprint="CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
提示
nuget.exe
使用 verify 命令來取得SHA256
憑證指紋的值。
信任存放庫中所有的套件
若要依據存放庫簽章信任套件,請使用 repository
元素:
<trustedSigners>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...."
hashAlgorithm="SHA256"
allowUntrustedRoot="false" />
</repository>
</trustedSigners>
信任套件擁有者
存放庫簽章包含提交時判斷套件擁有者的其他中繼資料。 您可以依據擁有者的清單從存放庫限制套件:
<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>
若套件擁有多位擁有者,且受信任的清單中有其中一位擁有者,那麼就會成功安裝套件。
未受信任的根憑證
在某些情形下,您可能會想要使用未鏈結到本機電腦中受信任之根的憑證來啟用驗證。 您可以使用 allowUntrustedRoot
屬性自訂此行為。
同步存放庫憑證
套件存放庫應宣告其在服務所引中使用的憑證。 不論如何,存放庫都會更新這些憑證,例如,當憑證到期時。 當發生這種情況時,使用特定原則的用戶端會需要更新組態以包含新增的憑證。 您可以使用受信任的簽署者同步命令,輕鬆地升級與存放庫nuget.exe
相關聯的受信任簽署者。
架構參考
用戶端原則的完整結構描述參考可在 nuget.config 參考中找到