docs(pusher): document v2 onion delegation and legacy ping defaults
- Correct WELIST_ALLOW_LEGACY_PING: legacy pings are accepted by default, the flag only disables them. - Describe onion delegation: v2-only inclusion, service-side host normalization, strict expiry check, deployment order and rollback. - Warn that disabled delegation rejects onion pings when SSL_KEY_PATH is the dedicated ping key. - Document certificate lifetime and revocation limits, offline master key requirements, helper --days bounds, and a delegation verification checklist. - Fix the bal-pusher.sh comment about the service-side defaults.
This commit is contained in:
@@ -169,14 +169,19 @@ scheme is selected with `WELIST_PING_SIG_VERSION`:
|
||||
or from a v3 `.onion` address. No HTTP callback to `/.pub_key.pem` is made.
|
||||
|
||||
For `.onion` URLs the pusher includes a `delegation` object when
|
||||
`WELIST_PING_DELEGATION_FILE` is set. The onion identity key signs that
|
||||
certificate offline; `SSL_KEY_PATH` is then the dedicated ping key, and the
|
||||
service verifies the certificate before checking the ping signature. The
|
||||
pusher validates the certificate at startup: `onion` must match the configured
|
||||
host, `valid_until` must be in the future, and `key` must match `SSL_KEY_PATH`.
|
||||
If the file is missing or malformed, or any check fails, the pusher logs a
|
||||
warning and sends no `delegation` object. It then signs with `SSL_KEY_PATH`
|
||||
directly, which works only when that key is the onion identity key.
|
||||
`WELIST_PING_DELEGATION_FILE` is set and `WELIST_PING_SIG_VERSION=2`. The onion
|
||||
identity key signs that certificate offline; `SSL_KEY_PATH` is then the
|
||||
dedicated ping key, and the service verifies the certificate before checking
|
||||
the ping signature. The service normalizes `onion` (lowercase, trailing dot
|
||||
removed) before comparing it with the ping host; the pusher's startup check uses
|
||||
the exact configured host, so issue lowercase certificates.
|
||||
|
||||
The pusher validates the certificate at startup: `onion` must match the
|
||||
configured host, `valid_until` must be in the future, and `key` must match
|
||||
`SSL_KEY_PATH`. If the file is missing or malformed, or any check fails, the
|
||||
pusher logs a warning and sends no `delegation` object. It then signs with
|
||||
`SSL_KEY_PATH` directly; in the recommended setup that key is the dedicated
|
||||
ping key, so the service rejects the pings until delegation is restored.
|
||||
|
||||
The `url` is trimmed of surrounding whitespace and trailing slashes, and the
|
||||
`chain` is lowercase, matching the service-side canonicalization.
|
||||
|
||||
Reference in New Issue
Block a user