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

我试图在Linux上运行NuGet(Ubuntu 12)。 我有单声道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(虽然我开始了一些旧版本也没有工作)。

我该如何解决这个错误?

我能够通过将证书导入机器存储而不是用户存储(默认情况下)来实现这一目的:

 $ 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也开始工作了。 🙂