Directory served over HTTPS
The spec says the directory SHOULD use HTTPS; this checker treats plaintext HTTP as a hard failure with a grade cap, as deliberate policy.
What this check verifies
The Web Bot Auth directory carries the public keys a verifier uses to check your signatures. This check looks at the resolved directory URL, after any redirects, and confirms it uses the https:// scheme. A http:// URL fails and caps the grade.
One thing to be precise about: the directory draft states the directory SHOULD be served over HTTPS, a strong recommendation rather than an absolute requirement. This checker is deliberately stricter than the letter of the spec here. Plaintext key distribution undermines everything the signatures prove, so the checker grades it as a critical failure. That is a policy decision of this tool, stated openly, in the same spirit as SSL Labs grading practices the TLS RFCs technically permit.
The check is on the scheme alone. It does not prove the body was served correctly; the reachability, media type, and JSON checks cover that. It only confirms the transport is encrypted.
Why it matters
The directory is the trust anchor for every signature you send. If a verifier fetches it over plaintext HTTP, anyone on the network path can rewrite the response in transit: swap your public keys for their own, then sign requests that verify against the keys they injected. The signature mechanism is then worthless, because the attacker controls the keys it is checked against.
HTTPS closes that gap. It authenticates the server and protects the response from tampering, so a verifier can trust that the keys it fetched are the keys you published.
A plaintext redirect is the same problem. If your HTTPS URL redirects through an http:// hop, the response is exposed on that hop, so the final scheme is what counts here.
How to fix it
- Serve the directory over HTTPS with a valid certificate. The well-known path is
https://<your-host>/.well-known/http-message-signatures-directory. - Reference the HTTPS URL everywhere your agent advertises it, including the
Signature-Agentheader it sends. - If you redirect from a bare or canonical host, keep every hop on HTTPS. Do not bounce through a plaintext URL.
The usual cause is an agent or configuration that still points at an http:// URL, or an HTTP-to-HTTPS redirect chain that passes through a plaintext intermediate. Confirm the final resolved URL starts with https://.
References
- RFC 7517 defines the JSON Web Key Set the directory serves.
- The web-bot-auth directory draft (draft-meunier-http-message-signatures-directory) recommends (SHOULD) serving the well-known endpoint over HTTPS.
- How grading works explains the grade cap this check imposes on failure.
How the checker scores this
- Tier
- JWKS directory
- Role
- Authoritative. Failing this can lower the grade ceiling or change the verdict.
- Grade cap
- Failing caps the grade at D (Directory not reachable over HTTPS).
- Point deduction
- A failure deducts 25 points; a warning deducts 6.