无法使用https

时间:2018-12-21 08:58:52

标签: python dns

我正在尝试开始使用Yocto项目快速构建,并且第一个bitbake命令在尝试通过获取https://www.example.com来检查网络可用性时失败了。错误消息是:

Fetcher failure for URL: 'https://www.example.com/'. URL https://www.example.com/ doesn't work.

我知道我的网络设置正确(除此之外,我可以正常使用网络),并且我的网络上没有代理(另一个引起类似问题的常见原因)。

我在这个问题上做了很多搜索,发现了一些建议,尝试直接使用wget和python来检查可用性。像这样:

我尝试与wget连接并获得了这些结果。

使用http

$ wget http://www.example.com
Resolving www.exampe.com (www.exampe.com)... 72.52.179.174
Connecting to www.exampe.com (www.exampe.com)|72.52.179.174|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ww4.exampe.com [following]
--2018-12-20 22:43:03--  http://ww4.exampe.com/
Resolving ww4.exampe.com (ww4.exampe.com)... 192.64.147.152
Connecting to ww4.exampe.com (ww4.exampe.com)|192.64.147.152|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 842 [text/html]
Saving to: ‘index.html’

使用https

$ wget https://www.example.com
Resolving www.example.com (www.example.com)... 198.105.254.23, 198.105.244.23
Connecting to www.example.com (www.example.com)|198.105.254.23|:443... failed: Connection refused.
Connecting to www.example.com (www.example.com)|198.105.244.23|:443... failed: Connection refused.

然后我从命令行像python一样尝试了相同的检查 所以:

$ python -c 'import urllib; print urllib.urlopen("http://www.example.com").read()'
$ python -c 'import urllib; print urllib.urlopen("https://www.example.com").read()'

这些都因以下错误而失败:

<stacktrace omitted>
IOError: [Errno socket error] [Errno 111] Connection refused

最后,使用telnet在套接字连接级别进行检查 揭示了尝试连接到www.example.com上的套接字443的情况 完全失败了。

$ telnet www.example.com 443
Trying 198.105.254.23...
Trying 198.105.244.23...
telnet: Unable to connect to remote host: Connection refused

1 个答案:

答案 0 :(得分:0)

如果您查看问题中调试命令的输出 您会看到域www.example.com至少解析为 3个不同的IP地址,也许最重要的是,不同的IP 地址的解析取决于传递给wget的协议。

很多Google搜索似乎都指向一个事实,那就是我的python CA证书设置不正确(许多问题 2.7发布后不久就发布了发行版,但我认为不是 不再)。

最后,我最终将默认名称服务器从默认名称更改为 我的路由器已配置(可能特定于我的ISP, CenturyLink),并在以下位置使用CloudFlare的公共DNS服务器 1.1.1.1和1.0.0.1,我开始将www.example.com解析为 93.184.216.34,问题消失了。

关于发生的事情,我最好的猜测是我的ISP(或骨干网) 他们连接的ISP)有自己的个人服务器 www.example.com并且该服务器未设置HTTPS。