web-dev-qa-db-ja.com

LinuxのNuGet:応答ストリームの取得エラー

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です(ただし、動作しなかった古いバージョンから始めました)。

このエラーを修正するにはどうすればよいですか?

52
friism

証明書をユーザーストアではなくマシンストアにインポートすることで、これを機能させることができました。これはデフォルトです。

$ 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がその時から働き始めたことです。 :)

111
Aaron Lerch