An administrator may perform limited admin tasks by submitting signed requests over HTTP. All such tasks require an admin key or keys to be set in the configuration file:
[hockeypuck] adminKeys=[ "DECAFBADDECAFBADDECAFBADDECAFBADDECAFBAD", ]
A plaintext request (below called request.txt
) follows a standard format:
/pks/delete
or /pks/replace
.
This helps prevent signature-reuse attacks, and must match exactly.gosop
:
gosop sign --as text $SECRET_KEY < request.txt > sig.asc
Where $SECRET_KEY
is a file containing the admin secret key.
It can then be submitted via e.g. curl
:
curl https://keys.example.com/$PATH --data-urlencode keytext@request.txt --data-urlencode keysig@sig.asc
Where $PATH
is the path of the operation.
BEWARE that deletion and replacement actions do not prevent the old key data from being resubmitted or resynced from the server's peers. To prevent changes being overwritten, the key's fingerprint should be added to the server's blacklist first.
/pks/delete
/pks/replace