OpenSSL v1.1.1 ssl_choose_client_version不支持的协议

Mar*_*cus 5 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)
Run Code Online (Sandbox Code Playgroud)

使用OpenSSL 1.1.0时不会出现此错误这些错误出现之间的变化是什么?

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

小智 26

您不必降级OpenSSL.

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

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
Run Code Online (Sandbox Code Playgroud)

Debian现在至少要求TLS 1.2版本而不是TLS 1.0.如果对方不支持TLS 1.2或更高版本,您将收到一些连接错误.

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

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


小智 13

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

您可以配置openvpn客户端以使用不同的最低协议版本配置libssl,而不是修改/etc/ssl/openssl.cnf.该选项是--tls-version-mintls-version-min在配置文件中.

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

  • 这应该是公认的答案,它比公认的解决方案的侵入性要小得多。 (2认同)