2014-10-06 194 views
0

我试图下载一个严重的脚本......不幸的是它不起作用。linux wget安全身份验证

壳:

$ wget --secure-protocol=TLSv1 --user=username --password=password --no-check-certificate https://www.example.com/bla/foo/bar/secure/1.pdf 

回应:

--2014-10-06 12:49:26-- https://www.example.com/bla/foo/bar/secure/1.pdf 
Resolving www.example.com (www.example.com)... xxx.xxx.xx.xx 
Connecting to www.example.com (www.example.com)| xxx.xxx.xx.xx|:443... connected. 
OpenSSL: error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error 
Unable to establish SSL connection. 

回答

1

可以有很多的原因,这失败,此错误,其中包括:

  • 服务器是无法应付较新的TLS版本
  • 服务器需要客户端认证
  • 服务器在前面
  • 行为不当的SSL负载平衡器有初步检查

这一切可以从你提供的信息说,您和服务器拒绝您的流量之间的防火墙。 您可能会根据sslabs检查服务器,以获取更多信息或在您的问题中提供更多详细信息,例如真实网址。

编辑:请求的服务器是www2.cs.fau.de.此服务器只支持SSLv3和嘎嘎叫着上的TLSv1(而不是只与SSLv3的响应),所以你需要强制执行的SSLv3与wget的:

wget --secure-protocol=SSLv3 ... 

服务器的证书可以对Linux上的通常受信任的CA进行验证,所以你可能不需要--no-check-certificate选项。

大多数浏览器都可以访问这个网站,因为它们会自动降级到旧的SSL版本,如果有更多的现代版本所连接不成功,但像卷曲工具或wget的不降级版本重试。

+0

我想得到以下讲座: https://www2.cs.fau.de/teaching/WS2014/AuD/slides/secure/aud-00.pdf – eliyahu 2014-10-06 12:32:27

+0

您需要SSLv3而不是TLSv1,请参阅编辑的回复。 – 2014-10-06 13:58:16