Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подписанные пакеты не требуют установки каких-либо конкретных действий; Однако если содержимое было изменено после подписания, установка блокируется ошибкой NU3008.
Предупреждение
Пакеты, подписанные с ненадежными сертификатами, считаются неподписанными и устанавливаются без предупреждений или ошибок, таких как любой другой неподписанный пакет.
Настройка требований к подписи пакета
Замечание
Требуется NuGet 4.9.0+ и Visual Studio версии 15.9 и более поздних версий в Windows
Вы можете настроить, как клиенты NuGet проверяют подписи пакетов, установив значение require для signatureValidationMode в файле nuget.config с помощью команды nuget config.
nuget.exe config -set signatureValidationMode=require
<config>
<add key="signatureValidationMode" value="require" />
</config>
В этом режиме убедитесь, что все пакеты подписаны любым из сертификатов, доверенных в nuget.config файле. Этот файл позволяет указать, какие авторы и (или) репозитории являются доверенными на основе отпечатка сертификата.
Автор пакета доверия
Чтобы доверять пакетам на основе подписи автора, используйте trusted-signers команду, чтобы задать author свойство в 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>
Подсказка
nuget.exe Используйте команду проверки, чтобы получить 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