software that enumerates interfaces, looking for "broadcast capable?" and
expecting certain results. Normal uses should not see any difference.
+- The default configurations will no longer allow connections to OpenVPN 2.3.x
+ peer or earlier, use the new ``--compat-mode`` option if you need
+ compatibility with older versions. See the manual page on the
+ ``--compat-mode`` for details.
+
+Common errors with OpenSSL 3.0 and OpenVPN 2.6
+----------------------------------------------
+Both OpenVPN 2.6 and OpenSSL 3.0 tighten the security considerable, so some
+configuration will no longer work. This section will cover the most common
+causes and error message we have seen and explain their reason and temporary
+workarounds. You should fix the underlying problems as soon as possible since
+these workaround are not secure and will eventually stop working in a future
+update.
+
+- weak SHA1 or MD5 signature on certificates
+
+ This will happen on either loading of certificates or on connection
+ to a server::
+
+ OpenSSL: error:0A00018E:SSL routines::ca md too weak
+ Cannot load certificate file cert.crt
+ Exiting due to fatal error
+
+ OpenSSL 3.0 no longer allows weak signatures on certificates. You can
+ downgrade your security to allow them by using ``--tls-cert-profile insecure``
+ but should replace/regenerate these certificates as soon as possible.
+
+
+- 1024 bit RSA certificates, 1024 bit DH parameters, other weak keys
+
+ This happens if you use private keys or other cryptographic material that
+ does not meet today's cryptographic standards anymore. Messages are similar
+ to::
+
+ OpenSSL: error:0A00018F:SSL routines::ee key too small
+ OpenSSL: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small
+
+ DH parameters (``--dh``) can be regenerated with ``openssl dhparam 2048``.
+ For other cryptographic keys, these keys and certificates need to be
+ regenerated. TLS Security level can be temporarily lowered with
+ ``--tls-cert-profile legacy`` or even ``--tls-cert-profile insecure``.
+
+- Connecting to a OpenVPN 2.3.x server or allowing OpenVPN 2.3.x or earlier
+ clients
+
+ This will normally result in messages like::
+
+ OPTIONS ERROR: failed to negotiate cipher with server. Add the server's cipher ('AES-128-CBC') to --data-ciphers (currently 'AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305') if you want to connect to this server.
+
+ or
+
+ client/127.0.0.1:49954 SENT CONTROL [client]: 'AUTH_FAILED,Data channel cipher negotiation failed (no shared cipher)' (status=1)
+
+ You can manually add the missing cipher to the ``--data-ciphers``. The
+ standard ciphers should be included as well, e.g.
+ ``--data-ciphers AES-256-GCM:AES-128-GCM:?Chacha20-Poly1305:?AES-128-CBC``.
+ You can also use the ``--compat-mode`` option. Note that these message may
+ also indicate other cipher configuration problems. See the data channel
+ cipher negotiation manual section for more details. (Available online under
+ https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst)
+
+- Use of a legacy or deprecated cipher (e.g. 64bit block ciphers)
+
+ OpenSSL 3.0 no longer supports a number of insecure and outdated ciphers in
+ its default configuration. Some of these ciphers are known to be vulnerable (SWEET32 attack).
+
+ This will typically manifest itself in messages like::
+
+ OpenSSL: error:0308010C:digital envelope routines::unsupported
+ Cipher algorithm 'BF-CBC' not found
+ Unsupported cipher in --data-ciphers: BF-CBC
+
+ If your OpenSSL distribution comes with the legacy provider (see
+ also ``man OSSL_PROVIDER-legacy``), you can load it with
+ ``--providers legacy default``. This will re-enable the old algorithms.
+
+- OpenVPN version not supporting TLS 1.2 or later
+
+ The default in OpenVPN 2.6 and also in many distributions is now TLS 1.2 or
+ later. Connecting to a peer that does not support this will results in
+ messages like::
+
+ TLS error: Unsupported protocol. This typically indicates that client and
+ server have no common TLS version enabled. This can be caused by mismatched
+ tls-version-min and tls-version-max options on client and server. If your
+ OpenVPN client is between v2.3.6 and v2.3.2 try adding tls-version-min 1.0
+ to the client configuration to use TLS 1.0+ instead of TLS 1.0 only
+ OpenSSL: error:0A000102:SSL routines::unsupported protocol
+
+ This can be an OpenVPN 2.3.6 or earlier version. ``compat-version 2.3.0`` will
+ enable TLS 1.0 support if supported by the OpenSSL distribution. Note that
+ on some Linux distributions enabling TLS 1.1 or 1.0 is not possible.
+
+
Overview of changes in 2.5
==========================