OpenSSL v1.1.1 ssl_choose_client_version不支持的协议

时间:2018-10-30 06:12:02

标签: openssl openvpn

我正在尝试通过openvpn连接到我们的研究所VPN。当openvpn运行时,我从openssl收到以下错误

Tue Oct 30 11:34:16 2018 WARNING: --ns-cert-type is DEPRECATED.  Use --remote-cert-tls instead.
... several more lines
Tue Oct 30 11:34:17 2018 OpenSSL: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
Tue Oct 30 11:34:17 2018 TLS_ERROR: BIO read tls_read_plaintext error
Tue Oct 30 11:34:17 2018 TLS Error: TLS object -> incoming plaintext read error
Tue Oct 30 11:34:17 2018 TLS Error: TLS handshake failed
Tue Oct 30 11:34:17 2018 SIGUSR1[soft,tls-error] received, process restarting
Tue Oct 30 11:34:17 2018 Restart pause, 5 second(s)

使用OpenSSL 1.1.0h时不会出现此错误。

在这些版本之间,发生此错误有什么变化?

我的系统是Debian Sid。由于我经常使用VPN,因此每次升级后都必须手动将OpenSSL降级到1.1.0h时,这非常烦人。同样,我可以使用openVPN进行连接。

3 个答案:

答案 0 :(得分:12)

您不必降级OpenSSL。

随着Debian中的openssl版本1.1.1的引入,默认情况下默认设置为更安全的值。这是在/etc/ssl/openssl.cnf配置文件中完成的。文件末尾有:

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2

Debian现在至少需要TLS 1.2版本,而不是TLS 1.0版本。如果另一端不支持TLS 1.2或更高版本,则会出现一些连接错误。

我建议将服务器上的openvpn升级到支持TLS 1.2的较新版本。

第二个选项(不太安全)是将MinProcotol修改为TLSv1或TLSv1.1。

答案 1 :(得分:8)

您不必降级OpenSSL 更改系统默认值。

您无需配置/etc/ssl/openssl.cnf,而只需配置openvpn 客户端以不同的最低协议版本配置libssl。选项 是--tls-version-mintls-version-min在配置文件中。

仍然最好升级服务器,但这是处理临时版本偏斜的更好方法。

答案 2 :(得分:0)

您甚至可以直接覆盖系统默认值,例如通过使用:

tls-cipher "DEFAULT:@SECLEVEL=1"

具有与常规OpenSSL默认值匹配的基本配置。请注意,OpenVPN通常会设置更为严格的密码列表(请参见手册页)。