curl和wget在升级到ubuntu 18.04.1后无法使用https站点

curl和wget在升级到ubuntu 18.04.1后无法使用https站点,curl,https,openssl,wget,ubuntu-18.04,Curl,Https,Openssl,Wget,Ubuntu 18.04,这似乎是一个与openssl相关的问题。有人知道这是什么吗 请注意,url在浏览器中工作 与工作组: # wget -d https://deb.nodesource.com/setup_8.x DEBUG output created by Wget 1.19.4 on linux-gnu. Reading HSTS entries from /home/user/.wget-hsts URI encoding = ‘UTF-8’ Converted file name 'setup_8.

这似乎是一个与openssl相关的问题。有人知道这是什么吗

请注意,url在浏览器中工作

与工作组:

# wget -d https://deb.nodesource.com/setup_8.x

DEBUG output created by Wget 1.19.4 on linux-gnu.

Reading HSTS entries from /home/user/.wget-hsts
URI encoding = ‘UTF-8’
Converted file name 'setup_8.x' (UTF-8) -> 'setup_8.x' (UTF-8)
--2018-09-02 19:54:06--  https://deb.nodesource.com/setup_8.x
Could not seed PRNG; consider using --random-file.
OpenSSL: error:2406F07A:random number generator:RAND_load_file:Not a regular file
Disabling SSL due to encountered errors.
带卷曲:

# curl -v -L https://deb.nodesource.com/setup_8.x

*   Trying 205.251.207.2...
* TCP_NODELAY set
* Connected to deb.nodesource.com (205.251.207.2) port 443 (#0)

<hangs>
#curl-v-Lhttps://deb.nodesource.com/setup_8.x
*正在尝试205.251.207.2。。。
*TCP_节点集
*已连接到deb.nodesource.com(205.251.207.2)端口443(#0)

您似乎遇到了此OpenSSL错误/功能:

查看源代码op
wget
,可以看到它在函数中调用了
RAND\u load\u file()
。该函数还解释了可用于指向其他文件(应为常规文件)的一些选项:

您可以尝试其中任何一种,或者使用OpenSSL的
1.1.0
-版本。或者使用
gnutls
,就像您已经做的那样:-)


顺便说一句,我无法重现你的问题,所以我不能确定这是原因。但是,我不认为您的问题是由升级到18.04.1引起的。您当前的OpenSSL安装似乎被其他东西搞砸了。版本号表示这是从未标记的OpenSSL存储库状态生成的。在位于
/usr/lib/x86\u 64-linux-gnu
中的“标准”OpenSSL库之前,我不希望这些库位于您的
LD\u LIBRARY\u路径中



根据反复的评论,最终的结论是,您在过去构建并安装了OpenSSL
1.1.1
版本,当时它运行良好。但是在更新到
18.04.1
之后,提到的错误被暴露了出来。找出更新中的哪些确切更改导致了它,这将是一件有趣的事情,但我认为现在知道您问题的即时答案已经足够好了:-)

这在18.04.1的“流浪者”框中也可以正常工作。这些命令在您的环境中使用的OpenSSL库的确切版本是什么?libssl.so.1.1=>/usr/local/lib/libssl.so.1.1在执行
strings/usr/local/lib/libssl.so.1.1 | grep^OpenSSL
?OpenSSL 1.1.1-dev xx XXX XXX XXX暂时忘记我的答案,你能看看这个链接并尝试推荐吗?是的,我在openssl github上也看到了这个问题。不过,关于这方面的建议似乎没有什么帮助。在任何情况下,我真的很想理解为什么这对我们来说是坏的(还有其他人有同样的问题)。此外,我不知道你所说的“从未标记回购中构建”是什么意思。openssl包就是Ubuntu附带的(我很确定)。你为什么不这么想?我不认为这个特定的openssl包是Ubuntu自带的。版本号
OpenSSL 1.1.1-dev xx XXX xxxx
不是您在普通发行版中会看到的,您获取OpenSSL库的位置似乎不是标准位置。你在
/usr/lib/x86_64-linux-gnu
中也看到OpenSSL库了吗?我所有的都是:/usr/lib/x86_64-linux-gnu/OpenSSL-1.0.0/engines。我不太了解Ubuntu的打包,但我干净的18.04.1安装看起来不同。也许您应该手动安装openssl包。这个已确认但未分配的bug报告可能是另一个迹象,表明您的OpenSSL 1.1.1版本不是官方发行版的一部分:好的,我添加了一个结论——请随意编辑。这可能是您最后一次安装OpenSSL的联合国官方版本,不是吗?
  /* Seed from a file specified by the user.  This will be the file
     specified with --random-file, $RANDFILE, if set, or ~/.rnd, if it
     exists.  */