Description
Not sure if this is a bug or working as intended, but I have noticed that TesseraCT (at least the POSIX one) does not implement HEAD requests, only POST and GET:
Compare:
$ curl -Ssv https://halloumi2025h2.log.ct.ipng.ch/ct/v1/get-roots -o /dev/null
...
< HTTP/2 200
< server: nginx/1.26.3
< date: Wed, 27 Aug 2025 21:03:22 GMT
< content-type: text/plain; charset=utf-8
< vary: Accept-Encoding
< x-ipng-frontend: nginx0-chrma0
<
{ [8060 bytes data]
With:
$ curl -ISsv https://halloumi2025h2.log.ct.ipng.ch/ct/v1/get-roots -o /dev/null
< HTTP/2 405
< server: nginx/1.26.3
< date: Wed, 27 Aug 2025 21:04:10 GMT
< content-type: text/plain; charset=utf-8
< content-length: 44
< x-content-type-options: nosniff
< x-ipng-frontend: nginx0-chplo0
<
{ [0 bytes data]
This is not a frontend issue, hitting the IPv4 / IPv6 endpoint directly yields the same result:
ctlog@ctlog1:~$ curl -I localhost:16900/ct/v1/get-roots
HTTP/1.1 405 Method Not Allowed
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Wed, 27 Aug 2025 21:05:52 GMT
Content-Length: 44
ctlog@ctlog1:~$ ps auxw | grep 16900
ctlog 51635 2.3 0.2 4418792 45844 ? Ssl Aug26 52:54 /home/ctlog/bin/tesseract-posix --private_key=/ssd-vol0/enc/tesseract/keys/lipase2025h2.pem --origin=lipase2025h2.log.ct.ipng.ch --storage_dir=/ssd-vol0/logs/lipase2025h2/data --roots_pem_file=/ssd-vol0/logs/lipase2025h2/data/roots.pem --http_endpoint=[::]:16900 --not_after_start=2025-07-01T00:00:00Z --not_after_limit=2026-01-01T00:00:00Z
Perhaps we can consider documenting that HEAD requests are ineffective in TesseraCT, or update it to implement HEAD requests.
Description
Not sure if this is a bug or working as intended, but I have noticed that TesseraCT (at least the POSIX one) does not implement HEAD requests, only POST and GET:
Compare:
With:
This is not a frontend issue, hitting the IPv4 / IPv6 endpoint directly yields the same result:
Perhaps we can consider documenting that HEAD requests are ineffective in TesseraCT, or update it to implement HEAD requests.