我使用的是WSL Ubuntu,它没有为某些网站提供完整的证书链,包括NuGet。
因此,我无法从NuGet添加或恢复软件包。有办法绕过它吗?
范例:
dotnet restore
获取以下错误:
/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/pomatti/Projects/dojo-for-net/solutions/WhiteBelt/WhiteBelt.sln]
/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error : The SSL connection could not be established, see inner exception. [/home/pomatti/Projects/dojo-for-net/solutions/WhiteBelt/WhiteBelt.sln]
/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error : The remote certificate is invalid according to the validation procedure. [/home/pomatti/Projects/dojo-for-net/solutions/WhiteBelt/WhiteBelt.sln]
更新
我尝试手动将所有证书添加到Ubuntu,但它不起作用:
1.已将巴尔的摩、Microsoft和NuGet证书复制到/usr/local/share/ca-certificate
1.已执行sudo update-ca-certificates
得到同样的错误。
3条答案
按热度按时间nnsrf1az1#
我在企业环境中遇到了同样的错误。最终,我找到了解决问题的办法。
最初,我试图将根CA证书复制到上面提到的相同路径中,但是当我运行命令update-ca-certificates时,我在输出中发现它正在查找路径
**/etc/ssl/certs/**
而不是/usr/local/share/ca-certificate
。在复制证书到该文件夹和
update-ca-certificates
后,它就被弄清楚了。祝你好运
slsn1g292#
对于遇到此问题的任何人来说,没有办法绕过证书验证。
我的Ubuntu应用程序由于某种原因出现了问题。我不得不重新安装它来解决这个问题。
https://github.com/microsoft/WSL/issues/4666
ryoqjall3#
我的问题最终变得不同:直到今天,WSL仍然有一个愚蠢的错误,时间可以疯狂地偏离轨道,特别是如果你的电脑进入睡眠状态。在我的例子中,我的WSL示例是过去两天的,这违反了SSL验证。
解决方案是通过退出所有windows完全关闭wsl,然后在powershell或其他地方执行
wsl --shutdown
,或者只是重新启动计算机。由于某种原因,与NIST或其他任何人同步时钟并不总是在WSL中工作。再次验证时间正确后(只需在wsl中执行
date
),再次尝试network命令,看看它们是否工作(在我的例子中,它是apt update
和dotnet add package
)