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

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

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

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

Я также пробовал различные параметры в файле devenv.exe.config следующим образом:

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

Ответ 1

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

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

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

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

  • Отменить существующий "официальный источник пакета Nuget"

  • Перезапустите VS2010.

Ответ 2

Перейдите в https://nuget.org/ и получите его сертификат.

Например, если вы используете Firefox: после открытия нужного сайта - щелкните значок сайта в левой части адресной строки, нажмите "Дополнительная информация", а на вкладке "Безопасность" должен быть раздел "Идентификация веб-сайта" с кнопкой "Просмотр сертификата". Нажмите там, в открывшемся диалоговом окне выберите вкладку "Подробности" - там вы увидите цепочку для *.nuget.org. Нажмите кнопку "Экспорт" внизу и сохраните сертификат в файл (добавьте расширение .cer вручную, потому что диалог не сделает этого для вас).

Теперь вам нужно настроить систему так, чтобы она доверяла сертификату. Нажмите Win + R (откроется диалог запуска) → введите mmc и запустите его (с правами администратора, если вы включили UAC). Там выберите Файл → Добавить или удалить snapin... → выберите Сертификаты слева, в диалоговом окне выберите Computer account и Local computer. Нажмите OK - дерево будет иметь Certificates node в Console root. Откройте его и папку с файлом Trusted People. В контекстном меню выберите Все задачи → Импорт... → Выберите файл, который вы экспортировали ранее, и импортируйте его.

Все должно работать нормально.

Ответ 3

У нас была такая же проблема в работе, и мы решили это, сбросив защищенный сокет, Https http. Это означает, что вы можете использовать URL-адрес V2 http://nuget.org/api/v2/.

Возможно, проблема избавится от безопасного сокета, но указанный выше URL (http://packages.nuget.org/v1/FeedService.svc/) также небезопасен.

Ответ 4

По-видимому, проблема с сертификатом SSL на go.microsoft.com. Измените URL источника пакета на http://packages.nuget.org/v1/FeedService.svc/, и он должен работать нормально.

Ответ 5

Связано: ServicePointManager не поддерживает прокси с помощью схемы https

Если вы ранее открыли Fiddler, возможно, у вас есть сертификат для nuget.org, который недействителен.

Если это так, откройте MMC, добавьте snapin сертификатов (текущий пользователь) и удалите nuget.org из личного хранилища.

Example certificate to remove

Из-за того, что Nuget сохраняет дескриптор этого сертификата (по-видимому), вам придется перезапустить Visual Studio. Впоследствии вы должны хорошо провести время.

Ответ 6

Перейти к VS2012 → Инструменты → Менеджер пакетов библиотек → Настройки диспетчера пакетов Выберите "Менеджер пакетов" → "Источники пакетов".

  • Добавьте новый источник пакета как: Name= NugetSource Source = http://packages.nuget.org/v1/FeedService.svc/
  • Переместить новый добавленный источник пакета в первую позицию.
  • Отменить существующий "официальный пакет пакетов Nuget"
  • Перезапустите VS2012.

Это работает на моей машине.

Ответ 7

На сегодняшний день 21 января 2015 года правильный URL-адрес https://www.nuget.org/api/v2/. Требуется WWW или сбой сертификата. НЕ возвращайтесь к http, потому что вы открываете свой код и все его потребители к противному вектору MITM.

Ответ 8

Я мог бы решить эту проблему, сбросив защищенный сокет, https -> http. Перейдите к Tools -> Nuget Package Manager -> Package Sources, затем добавьте новый источник, но без https:

Это означает http://nuget.org/api/v2/.

Ответ 9

Мне пришлось удалить https в настройках локального компьютера для Nuget и добавить (http) его на уровень пользователя в Tools → Manager Package Manager → Параметры диспетчера пакетов. Выберите "Менеджер пакетов" → "Источники пакетов".