Global
Since version 6.0 PowerMTA ships with OpenSSL 3.0 inside, and it rejects much of what used to pass: weak signature algorithms, short keys — DKIM keys included — and protocol versions below 1.2. The threshold is set as a number from 0 to 5, the default is 1.
The symptom is that the node does not start. A key or certificate that is too weak stops startup rather than dropping a single connection. The manual gives two typical errors: ca md too weak — the certificate is signed with an obsolete algorithm; tlsv1 alert internal error with number 80 — the other side’s certificate is too weak.
The right cure is reissuing, not lowering the threshold. The manual says so directly: lower it when reissuing right now is impossible. The threshold is common to the whole node and lowers the bar for everything at once — signing, receiving, sending and the management interface.
There is a targeted alternative. The entry DEFAULT:@SECLEVEL=0 inside a cipher list — smtp-tls-ciphers, for example — lowers the level only for that list. Both methods work by position in the file: the lowering must come above the certificate line it applies to.
We see the same mechanics from the other side. When checking a node with openssl s_client, it is easy to get a refusal from your own client rather than from the node: no protocols available means the local security level refused to offer the old version. It is lifted with the same trick: -cipher ‘DEFAULT:@SECLEVEL=0’.
Lowering is a last resort, and a targeted one is better:
| Value | When |
|---|---|
| 1 (default) | always |
| 0 | the node does not start, and reissuing right now is impossible |
| 2 and higher | an external security requirement, with delivery verification |
A targeted alternative to a general lowering is DEFAULT:@SECLEVEL=0 in the relevant cipher list, above the corresponding certificate line.
# last resort: the node does not start with the old certificate, # reissue is scheduled — remove before the end of the quarter openssl-security-level 0smtp-server-tls-certificate /etc/pmta/legacy.pem
what people get wrong and how it ends3 mistakes▶
§ 3.3.1.51
§ 3.3.1.51
our experience
3 relations
smtp-server-tls-certificateGlobalA weak receiving certificate is the most common reason the node does not start and the level gets lowered. § 3.3.1.51Upgrading the engineMoving to PowerMTA 6 from an earlier version is the moment when old keys and certificates are first checked by the new OpenSSL. § 3.3.1.51
smtp-server-tls-min-versionGlobalThe library’s security level may forbid a version before this setting even comes into play. § 3.3.1.51http-tls-min-versionGlobalThe OpenSSL security level may refuse a version this bound allows. inferencehttp-tls-ciphersGlobalThe security level cuts the weak ones out of this list; the DEFAULT:@SECLEVEL=0 entry inside the list is a targeted substitute for lowering it globally. § 3.3.1.51smtp-tls-min-version<domain>The library’s security level may forbid a version before this setting even comes into play. § 3.3.1.51The encryption library is part of the distribution, not the systemThe only setting of the built-in library: it allows or forbids whole classes of ciphers and versions. § 2.8
grep -rn 'openssl-security-level' /etc/pmta/
3 articles
◇The encryption library is part of the distribution, not the systemOpenSSL comes inside the PowerMTA distribution, so the set of versions and ciphers is determined by the product version, not by system libraries.◇The activation key is a prerequisite for installation, not a step after itWithout an activation key from SparkPost support the engine neither installs nor runs, and the license tier sets the outbound connection ceiling: on Standard everything above 200 is ignored.◇Cloud restrictionsClouds restrict outbound mail on port 25 until you ask them to lift the limit, and mailbox providers treat their address ranges with suspicion.