我正在尝试使用 GNU Wget 1.11.4 在 Windows 上的命令提示符中运行以下命令:
wget -A pdf -m -p -E -k -K -nd https://www.ceratizit.com/
但我一直收到以下错误:
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
--2021-07-07 10:03:45-- https://www.ceratizit.com/ Resolving www.ceratizit.com... 2.16.128.209, 2.16.128.225
Connecting to www.ceratizit.com|2.16.128.209|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
相同的命令在 Linux 上有效,但在 Windows 上无效。我该尝试什么?
答案1
如果协议版本不匹配,通常会出现此错误。例如,如果您的服务器使用 TLS1.2,而客户端尝试使用 TLS1.0。-> 仅当服务器向后兼容时,这才会起作用,否则您将看到您发布的消息。
每当您连接到服务器时,服务器背后的软件都会期望所谓的ServerHello
。如果服务器根本不支持 SSL,也会发生这种情况。
正如您所述,它适用于 Linux,请检查您的 Windows 计算机正在使用哪种协议。:unknown protocol
您发布的消息中的字符串也表明了这一点。
附加调试选项:
- 您可以尝试使用带有选项的 wget
--no-check-certificate
。 - 进一步的调试将通过其端口请求 SSL 连接。
您可以通过 来完成此操作wget http://>server<:443
。
如果此方法有效,则需要在 443 端口上启用 SSL。否则 wget 不会提供太多调试信息,因此您需要使用更复杂的工具,例如 fe openssl 客户端及其调试选项。