私は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を使用して接続できるようにするためです。
OpenSSLをダウングレードする必要はありません。
Debianでopensslバージョン1.1.1が導入されたことにより、デフォルトではデフォルトがより安全な値に設定されます。これは/etc/ssl/openssl.cnf設定ファイルで行われます。ファイルの最後にあります:
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
Debianでは現在、TLS 1.0ではなくTLS 1.2バージョンが最低限必要です。反対側がTLS 1.2以降をサポートしていない場合、いくつかの接続エラーが発生します。
サーバーのopenvpnをTLS 1.2をサポートする新しいバージョンにアップグレードすることをお勧めします。。
2番目のオプション(あまり安全ではない)は、MinProcotolをTLSv1またはTLSv1.1に変更することです。
OpenSSLをダウングレードする必要はありませんまたはシステムのデフォルトを変更します。
/etc/ssl/openssl.cnfを変更する代わりに、openvpnクライアントを構成して、libsslを異なる最小プロトコルバージョンで構成することができます。オプションは--tls-version-min
またはtls-version-min
構成ファイル内。
サーバーをアップグレードすることは依然として望ましいですが、これは一時的なバージョンのスキューに対処するためのより良い方法です。
システムのデフォルトを直接オーバーライドすることもできます。を使用して:
tls-cipher "DEFAULT:@SECLEVEL=1"
通常のOpenSSLのデフォルトと一致する基本的な構成にする。 OpenVPNは通常、より制限された暗号リストを設定することに注意してください(manページを参照)。