Actually, using a wildcard certificate is perfectly fine for Exchange, but it introduces a very specific "matching" requirement that often causes the STARTTLS verb to vanish if the configuration isn't exact.
Exchange is essentially a "perfectionist" when it comes to the handshake. If it sees even a tiny mismatch between the Connector's FQDN and the Certificate's Name, it will silently disable TLS to avoid a protocol error.
Why Wildcards are Finicky in Exchange
When a remote server (like Microsoft) connects, Exchange looks at the FQDN property of the Receive Connector (e.g., mail.domain.suffix). It then searches your certificate store for a match.
- The Problem: Exchange sometimes fails to "match" the specific name
mail.domain.suffix to the wildcard *.domain.suffix for SMTP purposes, even though it works fine for HTTPS (IIS).
- The Result: Because it doesn't find what it considers a "perfect" match, it suppresses the
STARTTLS verb entirely.
The 3-Step "Wildcard Fix"
1. Match the Connector FQDN
Ensure the FQDN on your "Default Frontend GLASS" connector is exactly what the certificate expects. For a wildcard *.domain.suffix, the FQDN must be a subdomain of that root.
Set-ReceiveConnector "Default Frontend GLASS" -FQDN mail.domain.suffix
2. Clear the "Ghost" Binding
Sometimes a legacy or self-signed certificate is "stuck" in the connector's memory. You should clear it and then re-apply your Sectigo wildcard thumbprint.
# Clear it first
Set-ReceiveConnector "Default Frontend GLASS" -TlsCertificateName $null
# Re-apply correctly (using your Sectigo thumbprint)
$cert = Get-ExchangeCertificate -Thumbprint <YOUR_THUMBPRINT>
$tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"
Set-ReceiveConnector "Default Frontend GLASS" -TlsCertificateName $tlscertificatename
3. The "Network Service" Permission (Critical)
The Exchange Transport service runs as Network Service. If this account doesn't have "Read" access to the private key of your new Sectigo certificate, it can't use it for TLS.
- Open
certlm.msc (Local Computer Certificates).
- Find your
*.domain.suffix cert in Personal.
- Right-click > All Tasks > Manage Private Keys.
- Add Network Service and give it Read permissions.
The Final Step: The "Nuclear" Restart
Exchange caches the EHLO response. Even if you fix the settings, MXToolbox might see the old "No TLS" response for several minutes (or hours). You must restart the transport service to force a refresh:
Restart-Service MSExchangeTransport
Is Microsoft Exploiting This?
If you fix the TLS and the aka.ms/ExchangeBuildCompliance error persists, then your "Revenue Generation" theory is likely correct. It would mean Microsoft isn't just checking for "Security" (TLS), but is actively querying your server's build version to force an upgrade.
However, 90% of the time, fixing the TLS handshake makes that error disappear, because Microsoft stops flagging the connection as "Legacy/High-Risk."
Would you like the command to check if there are any Event ID 12014 errors in your logs? That would confirm if the wildcard is indeed failing to match the FQDN.