A log line naming DHE-RSA-AES256-SHA is not a summary of the whole connection. It belongs to the TLS handshake that protects the control channel, and the traffic inside the tunnel can be encrypted with something else entirely. Reporting it as the VPN's data cipher is the mistake to avoid.

Two results matter, and they answer different questions. One is the negotiated TLS suite for the control channel; the other is the data cipher for the packets the tunnel carries.

Two results, two questions

The control channel carries the handshake and the management messages between peers. Its cipher is chosen by the TLS stack, so the name follows TLS conventions. The data channel carries user traffic and is configured by OpenVPN's own cipher negotiation.

Decide which question you are answering before you read either line. Whether the tunnel is encrypted and whether the handshake is strong are not the same question.

A log excerpt that shows both lines is the useful one. Read the control line for the TLS version and suite, and the data line for the algorithm that actually protects the payload.

Decode the TLS suite name in its own context

In a historical OpenSSL-style name like DHE-RSA-AES256-SHA, each component describes a different decision. DHE is the ephemeral Diffie-Hellman key agreement, RSA is the authentication method, AES256 is AES-256 in CBC mode for TLS records, and SHA is the SHA-1-based record MAC.

The last component is not a certificate fingerprint, and reading it as one is a common error. Nor does the name tell you the protocol version on its own, because TLS 1.3 uses a different naming scheme entirely. TLS_AES_256_GCM_SHA384 follows that newer form, where the trailing hash is part of the suite construction rather than a MAC choice. Apply the component reading only to the older naming style.

The OpenSSL suite reference maps these names to their definitions if a component is unfamiliar.

Read the data channel result for carried traffic

For carried traffic, read the data channel line from the same session. A data-ciphers list in the configuration is a permitted set, not evidence that any particular algorithm was negotiated. The log records the choice; the config records the menu.

An AEAD cipher such as AES-GCM carries its own integrity check, so a separate data-channel HMAC is not part of that path.

The auth directive does not upgrade TLS, certificates or the data cipher. It selects a digest for the parts of the protocol that still use one, and with an AEAD data cipher there is no separate data HMAC to configure.

Keep identity checks out of the cipher result

Certificate signature algorithm, trust-chain validation and peer-name verification are three more properties that a cipher name says nothing about. An expired certificate fails regardless of how strong the suite is. A mismatched server name fails the same way. Fixing a digest setting in the profile does not repair either.

Keep those checks in the review notes next to the cipher result, not merged into it.

Record the negotiated results from the current session

Take the results from the current connection and record the client and server versions with them. An append-only log can hold an older session's line, and quoting it as current is how a fixed problem appears to persist.

For a policy review, hand the configuration owner the negotiated TLS version and suite, the data cipher that was chosen and the certificate-validation settings together. Alter that layer, then read a fresh log to confirm the new negotiated values.

Ebitabo ebifaananyi