Securing SMTP between mail servers
Inter-server SMTP TLS is opportunistic and downgradable by default. DANE lets a sending server require a specific certificate, which is its principal real-world deployment.
Validates TLSA records (DANE) against a host's actual TLS certificate.
Fetches _443._tcp.<domain> TLSA records and hashes the live certificate to verify each one.
Validates TLSA records (DANE) against a host's actual TLS certificate.
example.com:443
TLSA 3 1 1 <hash> — MATCHES certificate
The record's fingerprint is compared with the live cert.
A match means clients can authenticate the cert via DNS.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/dane-tlsa" \
-H "Content-Type: application/json" \
-d '{"input":"example.com","port":443,"proto":"tcp"}'const res = await fetch("https://yas.sh/api/v1/tools/dane-tlsa", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"input": "example.com",
"port": 443,
"proto": "tcp"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/dane-tlsa", json={"input":"example.com","port":443,"proto":"tcp"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| input | string | Yes | Hostname, e.g. example.com |
| port | integer | No (default 443) | Service port (default 443) |
| proto | string | No (default "tcp") | tcp | udp |
{ "result": { "records": [{ "raw": "3 1 1 abc...", "usage": 3, "selector": 1, "matchingType": 1, "match": true }], "cert": { "subject": "...", "expiresInDays": 120 } } }Validate DANE TLSA records (_port._tcp.domain) against the live TLS certificate.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).DANE publishes a TLSA record in DNS that pins which certificate or public key a service must present, removing the assumption that any of hundreds of public CAs may issue for your domain. The record name encodes port, protocol and host (_25._tcp.mail.example.com) and carries four fields: certificate usage, selector, matching type and the association data — typically a SHA-256 digest of the certificate or its public key.
DANE is only meaningful with DNSSEC. Without a validated chain of trust, an attacker who can spoof DNS can also spoof the TLSA record, and the pin proves nothing. This dependency is why DANE has seen strong adoption in SMTP — where opportunistic TLS was otherwise trivially downgradable — and almost none in the browser world.
Inter-server SMTP TLS is opportunistic and downgradable by default. DANE lets a sending server require a specific certificate, which is its principal real-world deployment.
DANE-EE usage pins your own certificate, so a mis-issuance by any public CA cannot be used against your service.
Several European government and healthcare frameworks require DANE for inbound mail; a valid TLSA record is the evidence.
Publishing the new digest alongside the old before switching avoids the outage that a single-record rollover guarantees.
What this tool deliberately does not do, and where it will disagree with other implementations.