一尘不染

Linux上的NuGet:获取响应流时出错

linux

我正在尝试在Linux(Ubuntu 12)上运行NuGet。我有Mono 3.0.6(从源代码编译)。

$ mono --runtime=v4.0.30319 .nuget/NuGet.exe update -self
Checking for updates from https://nuget.org/api/v2/.
Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

我收集到该错误是由于某些证书(最有可能是nuget.org)不可信所致。这篇博客文章有更多详细信息

所以我跑了:

$ mozroots --import --sync
$ certmgr -ssl https://go.microsoft.com
$ certmgr -ssl https://nugetgallery.blob.core.windows.net
$ certmgr -ssl https://nuget.org

…无济于事。

NuGet版本为2.3.0.0(尽管我从一些较旧的版本开始,但该版本也不起作用)。

如何解决此错误?


阅读 335

收藏
2020-06-02

共1个答案

一尘不染

通过将证书导入计算机存储而不是用户存储,可以将其导入,这是默认设置:

$ sudo mozroots --import --machine --sync
$ sudo certmgr -ssl -m https://go.microsoft.com
$ sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
$ sudo certmgr -ssl -m https://nuget.org

我验证了在执行此操作之前-即使执行了原始的基于用户存储的命令后-tlstest.exe工具也失败了,并且在导入到计算机存储中后它成功了。

而且,对我来说最重要的当然是nuget也开始工作。:)

2020-06-02