Ошибка nuget Visual Studio 2010: базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS
Всякий раз, когда я пытаюсь что-то установить или даже просто перечислить пакеты, я получаю эту ошибку "Основное соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS"
Я попробовал это решение от Codeplex без удачи.
Я использую последнюю версию Nuget.
Я также пробовал различные варианты в devenv.exe.config, как это:
<servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/>
12 ответов
Перейдите к VS2010 → Инструменты → Диспетчер пакетов библиотеки → Настройки диспетчера пакетов.
Выберите "Диспетчер пакетов" → "Источники пакетов".
Добавьте новый источник пакета как:
Название:
NugetSource
Переместить вверх добавленный источник пакета на первую позицию.
Снимите флажок с "Официального источника пакетов Nuget"
Перезапустите VS2010.
Перейдите на https://nuget.org/ и получите его сертификат.
Например, если вы используете Firefox: после открытия сайта nuget - щелкните значок сайта в левой части адресной строки, нажмите "Дополнительная информация", и на вкладке "Безопасность" должен появиться раздел "Идентификация веб-сайта" с "Просмотр". Кнопка сертификата. Нажмите там, в открывшемся диалоговом окне выберите вкладку Details - там вы должны увидеть цепочку *.nuget.org. Нажмите кнопку "Экспорт" внизу и сохраните сертификат в файл (добавьте .cer
расширение вручную, потому что диалог не сделает это за вас).
Теперь вам нужно настроить систему так, чтобы она доверяла сертификату. Нажмите Win+R (откроется диалоговое окно) -> введите mmc
там и запустите его (с правами администратора, если у вас включен UAC). Там выберите Файл -> Добавить или удалить оснастку... -> выберите Сертификаты слева, в диалоговом окне выберите Computer account
а также Local computer
, Нажмите ОК - дерево будет Certificates
узел в Console root
, Откройте его и папку с файлами Trusted People
, В его контекстном меню выберите Все задачи -> Импорт... -> Выберите файл, который вы экспортировали ранее, и импортируйте его.
Все должно работать нормально.
У нас была такая же проблема в работе, и мы решили ее, отбросив безопасный сокет Https -> http. Это означает, что вы можете использовать V2 URL http://nuget.org/api/v2/.
Возможно, проблема избавления от безопасного сокета, но приведенный выше URL ( http://packages.nuget.org/v1/FeedService.svc/) также небезопасен.
Связанный: ServicePointManager не поддерживает прокси со схемой https
Если у вас ранее был открыт Fiddler, у вас вполне может быть сертификат для nuget.org, который недействителен.
Если это так, откройте MMC, добавьте оснастку "Сертификаты" (текущий пользователь) и удалите nuget.org из личного хранилища.
Из-за того, что Nuget хранит дескриптор этого сертификата (по-видимому), вам придется перезапустить Visual Studio. После этого вы должны хорошо провести время.
Очевидно, существует проблема с сертификатом SSL на go.microsoft.com. Измените исходный URL-адрес пакета на http://packages.nuget.org/v1/FeedService.svc/ и он должен работать нормально.
Перейдите в VS2012 -> Инструменты -> Диспетчер пакетов библиотеки -> Настройки диспетчера пакетов. Выберите Диспетчер пакетов -> Источники пакетов.
- Добавьте новый источник пакета как: Name = NugetSource Source = http://packages.nuget.org/v1/FeedService.svc/
- Переместить вверх добавленный источник пакета на первую позицию.
- Снимите флажок с "Официального источника пакетов Nuget"
- Перезагрузите VS2012.
Это работает на моей машине.
Если ничего из вышеперечисленного не работает, попробуйте следующее....
Попробуйте вставить следующее в файл.reg и запустите его. Затем попробуйте запустить свою команду NuGet (перезагрузка не требуется).
Редактор реестра Windows версии 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319] "SchUseStrongCrypto" =dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319] "SchUseStrongCrypto" =dword:00000001
Загляните в эту проблему, потому что TLS1.2 не был включен (аналогично ответу Тони). Использование http не исправляет ситуацию, потому что NuGet перенаправляет на https теперь, когда применяется TLS1.2.
благодаря "neoscribe"
На сегодняшний день, 21 января 2015 года, правильный URL-адрес - https://www.nuget.org/api/v2/. Требуется www или сертификат не работает. НЕ возвращайтесь к http, потому что вы открываете свой код и всех его потребителей для неприятного вектора MITM.
Для меня проблема была решена путем очистки кэша nuget (и перезапуска VS)
Мне пришлось удалить https в настройках локального компьютера для Nuget и добавить (http) его на уровень пользователя в Инструменты -> Диспетчер пакетов библиотеки -> Настройки диспетчера пакетов. Выберите Диспетчер пакетов -> Источники пакетов.
Я мог бы решить эту проблему, опустив безопасную розетку, https
->
http
, Перейти в Инструменты ->
Диспетчер пакетов Nuget ->
Пакет источников, затем добавьте новый источник, но без https
:
Это означает http://nuget.org/api/v2/.
мне не повезло ни с одним методом, связанным с Visual Studio. Не обновлять все, не добавлять вручную корневой сертификат https://api.nuget.org/v3/index.json в окна и т. д. Как я это исправил:
nuget restore MySolution.sln
Загрузите нуджет здесь .