Ошибка nuget Visual Studio 2010: базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS

Всякий раз, когда я пытаюсь что-то установить или даже просто перечислить пакеты, я получаю эту ошибку "Основное соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS"

Я попробовал это решение от Codeplex без удачи.

Я использую последнюю версию Nuget.

Я также пробовал различные варианты в devenv.exe.config, как это:

<servicePointManager  checkCertificateName="false"    checkCertificateRevocationList="false"/>

12 ответов

Решение
  • Перейдите к VS2010 → Инструменты → Диспетчер пакетов библиотеки → Настройки диспетчера пакетов.

  • Выберите "Диспетчер пакетов" → "Источники пакетов".

  • Добавьте новый источник пакета как:

  • Переместить вверх добавленный источник пакета на первую позицию.

  • Снимите флажок с "Официального источника пакетов 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 -> Инструменты -> Диспетчер пакетов библиотеки -> Настройки диспетчера пакетов. Выберите Диспетчер пакетов -> Источники пакетов.

  1. Добавьте новый источник пакета как: Name = NugetSource Source = http://packages.nuget.org/v1/FeedService.svc/
  2. Переместить вверх добавленный источник пакета на первую позицию.
  3. Снимите флажок с "Официального источника пакетов Nuget"
  4. Перезагрузите 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

Загрузите нуджет здесь .

Другие вопросы по тегам