openSSL 和 gnuTLS 无法连接到 OpenWRT 网络界面,为什么?

openSSL 和 gnuTLS 无法连接到 OpenWRT 网络界面,为什么?

我从 IceWeasel (debian Firefox) 安全连接到 OpenWRT 时遇到了一些奇怪的事情。我发现最近的 Firefox 错误消息对于故障排除不太有用。

所以我想用一些 HTTPS 工具来测试连接。但我常用的命令行工具完全失败了。为什么?这是一个已知的错误吗?

$ curl --insecure https://mortar.local
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

$ wget --no-check-certificate https://mortar.local
--2014-10-02 10:42:53--  https://mortar.local/
Resolving mortar.local (mortar.local)... 10.209.37.18
Connecting to mortar.local (mortar.local)|10.209.37.18|:443... connected.
GnuTLS: An unexpected TLS packet was received.
Unable to establish SSL connection.

以上是在 Debian 7.6 上。wget 和 curl 分别使用 gnutls26 2.12.20-8+deb7u2`和 openssl 1.0.1e-2+deb7u12。

如果我切换到 Fedora 20,curl 可以工作,但 wget 不行。在 Fedora 上,wget 仍然使用 openssl,但 curl 使用 NSS 3.16.2,因此我可以使用它来进行我最初想要运行的测试。IceWeasel/Firefox 使用 NSS,因此这解释了为什么 IceWeasel 并不总是失败。但我不喜欢它与其他两个 SSL 库不兼容。

OpenWRT 12.09
uhttpd-mod-tls 2012-10-30-e57bf6d8bfa465a50eea2c30269acdfe751a46fd
libcyassl 1.6.5-1

更新:也适用于 OpenWRT 14.07

答案1

更新 x2:我从 Debian 7 系统重新测试,现在 curl 和 wget 都可以正常工作。我还没有看到 IceWeasel (Firefox) 出现奇怪的问题。加密库现在是 openssl 1.0.1e-2+deb7u14 和 gnutls 2.12.20-8+deb7u2。gnutls 中没有变化(OpenWRT 不会自动更新)。

所以我真的不知道为什么 curl(使用 gnutls)现在可以正常工作。我也没有什么可以排除故障的。

最有力的假设是:也许 OpenWRT 14.07 修复了一个错误 - 但是我知道我升级到 14.07 的过程并不顺利,所以可能会留下一个奇怪的问题。

细节——我设法升级了 squashfs 映像(只读基础文件系统),同时保留了针对 12.09 的软件包源配置,并从那里在 JFFS 覆盖上安装了一堆软件包。这需要大量修复。我可能应该保存我的配置文件和软件包列表并重新刷新,以防万一别的潜伏:)。

相关内容