无法在 Ubuntu 14.04 LTS 上通过 wget 建立 SSL 连接

2024-11-13 08:36:00
admin
原创
198
摘要:问题描述:我尝试通过 wget 下载图像,但出现错误:无法建立 SSL 连接。wget https://www.website.com/image.jpg --2015-02-26 01:30:17-- https://www.website.com/image.jpg Resolving www.webs...

问题描述:

我尝试通过 wget 下载图像,但出现错误:无法建立 SSL 连接。

wget https://www.website.com/image.jpg
--2015-02-26 01:30:17--  https://www.website.com/image.jpg
Resolving www.website.com (www.website.com)... xx.xxx.xx.xx
Connecting to www.website.com (www.website.com)|xx.xxx.xx.xx|:443... connected.
Unable to establish SSL connection.

我的测试用例:

  1. 使用 Ubuntu 12.04.4 LTS (GNU/Linux 3.8.0-44-generic x86_64),基于 linux-gnu 构建的 GNU Wget 1.13.4,我能够使用上述代码下载图像。没有错误。

  2. 使用 Ubuntu 14.04 LTS(GNU/Linux 3.13.0-24-generic x86_64)、基于 linux-gnu 构建的 GNU Wget 1.15,我无法使用上述代码下载图像。

另一个变量是 www.website.com 使用 TLS 1.0。我不知道这会如何影响 wget。但如果我从 TLS 1.2 网站获取图像,我不会在两个测试用例中收到任何 ssl 连接错误。

Ubuntu 14.04 或 wget 1.15 是否与 TLS 1.0 网站不兼容?我需要安装/下载任何库/软件来启用此连接吗?


解决方案 1:

你肯定是使用了旧版本的 wget,我也遇到了同样的问题。我使用的是 wget 1.12。因此,解决这个问题有两种方法:更新wget或使用curl

curl -LO 'https://example.com/filename.tar.gz'

解决方案 2:

... 目前这种情况只发生在我正在测试的网站上。我不能在这里发布它,因为它是机密的。

那么我猜这是与 TLS1.2 不兼容的网站之一。12.04 中使用的 openssl 在客户端不使用 TLS1.2,而 14.04 则使用 TLS1.2,这也许可以解释这种差异。要解决这个问题,请尝试明确使用。如果这没有帮助,请检查您是否可以使用(可能不行)和--secure-protocol=TLSv1访问该网站。openssl s_client -connect ...`openssl s_client -tls1 -no_tls1_1, -no_tls1_2 ...`

请注意,也可能有其他原因,但这个原因最有可能,而且如果无法访问该网站,那么一切都只是猜测。

假设问题的详细信息:通常,客户端使用最兼容的握手来访问服务器。这是 SSLv23 握手,它与较旧的 SSL 版本兼容,但会宣布客户端支持的最佳 TLS 版本,以便服务器可以选择最佳版本。在这种情况下,wget 将宣布 TLS1.2。但是有些损坏的服务器从未假设有一天会出现类似 TLS1.2 的东西,并且如果客户端宣布支持这个热门新版本(来自 2008 年!),它们会拒绝握手,而不是仅使用服务器支持的最佳版本进行响应。要访问这些损坏的服务器,客户端必须撒谎并声称它只支持 TLS1.0 作为最佳版本。

Ubuntu 14.04 或 wget 1.15 是否与 TLS 1.0 网站不兼容?我需要安装/下载任何库/软件来启用此连接吗?

问题出在服务器,而不是客户端。大多数浏览器通过使用较低版本重试来解决这些损坏的服务器问题。如果第一次连接尝试失败,大多数其他应用程序将永久失败,即它们不会自行降级,必须通过某些应用程序特定设置强制使用另一个版本。

解决方案 3:

虽然这几乎肯定不是OP 的问题,但如果您使用代理并且没有正确设置环境变量,您也可能会遇到这种情况Unable to establish SSL connection。请确保设置并指向您的代理。wget`HTTP_PROXYHTTPS_PROXYHTTP_PROXY`HTTPS_PROXY

如果您在一家大公司工作,这种情况很常见。

解决方案 4:

如果您信任该主机,请添加有效证书,指定--no-check-certificate或添加:

check_certificate = off

进入你的~/.wgetrc

在极少数情况下,您的系统时间可能不同步,从而使证书无效。

解决方案 5:

我是这样解决问题的。我使用了“m3w”下载命令。“m3w”命令的基本用法:m3w www.exemple.com

注意:一旦下载到文件,您将需要 ESC/s 来保存文件。

解决方案 6:

我尝试了本页面和类似页面中写到的所有方法,但都没有用。当我更改URL 中的https=>时,它工作正常。http

您可以尝试这个作为最后的尝试。

解决方案 7:

我遇到了同样的问题,前缀sudo对我有帮助,所以我没有普通用户的这种权利。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用