From 05033704896f2d353d0045ed700134ecb1e45e09 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Thu, 28 Aug 2025 20:52:08 +0200 Subject: [PATCH] Autogen the Origin of the log and use it to replace the hardcoded ct.ipng.ch strings in gen-html and gen-env --- tesseract/genconf/env.go | 2 +- tesseract/genconf/html.go | 4 ++-- tesseract/genconf/main.go | 10 ++++++++++ tesseract/genconf/nginx.go | 6 +----- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tesseract/genconf/env.go b/tesseract/genconf/env.go index 620af3a..94ef42f 100644 --- a/tesseract/genconf/env.go +++ b/tesseract/genconf/env.go @@ -32,7 +32,7 @@ func generateEnv(yamlFile string, wantDiff bool, allowWrite bool, useColor bool) // Build TESSERACT_ARGS string args := []string{ fmt.Sprintf("--private_key=%s", logEntry.Secret), - fmt.Sprintf("--origin=%s.log.ct.ipng.ch", logEntry.ShortName), + fmt.Sprintf("--origin=%s", logEntry.Origin), fmt.Sprintf("--storage_dir=%s", logEntry.LocalDirectory), fmt.Sprintf("--roots_pem_file=%s", rootsPemPath), } diff --git a/tesseract/genconf/html.go b/tesseract/genconf/html.go index 4e26c08..ae10eba 100644 --- a/tesseract/genconf/html.go +++ b/tesseract/genconf/html.go @@ -74,7 +74,7 @@ const htmlTemplate = ` {{range .Logs}} -

{{.ShortName}}.log.ct.ipng.ch

+

{{.Origin}}

Log ID: {{.LogID}}
@@ -211,7 +211,7 @@ func computeKeyInfo(logEntry *Log) error { func generateLogJSONWithStatus(logEntry Log, outputPath string, wantDiff bool, allowWrite bool, useColor bool) error { logJSON := LogV3JSON{ - Description: fmt.Sprintf("%s.log.ct.ipng.ch", logEntry.ShortName), + Description: logEntry.Origin, SubmissionURL: fmt.Sprintf("%s/", logEntry.SubmissionPrefix), MonitoringURL: fmt.Sprintf("%s/", logEntry.MonitoringPrefix), TemporalInterval: TemporalInterval{ diff --git a/tesseract/genconf/main.go b/tesseract/genconf/main.go index d7daa4b..499e4b2 100644 --- a/tesseract/genconf/main.go +++ b/tesseract/genconf/main.go @@ -41,6 +41,7 @@ type Log struct { PublicKeyPEM string PublicKeyDERB64 string PublicKeyBase64 string + Origin string } func main() { @@ -99,6 +100,15 @@ func loadConfig(yamlFile string) Config { if config.Logs[i].Period == 0 { config.Logs[i].Period = 200 } + + // Extract hostname from SubmissionPrefix to set Origin + if config.Logs[i].SubmissionPrefix != "" { + hostname, err := extractHostname(config.Logs[i].SubmissionPrefix) + if err != nil { + log.Fatalf("Failed to parse SubmissionPrefix URL for %s: %v", config.Logs[i].ShortName, err) + } + config.Logs[i].Origin = hostname + } } return config diff --git a/tesseract/genconf/nginx.go b/tesseract/genconf/nginx.go index 0d40e7b..e07e203 100644 --- a/tesseract/genconf/nginx.go +++ b/tesseract/genconf/nginx.go @@ -151,14 +151,10 @@ func extractPort(listenAddr string) string { } func extractHostname(urlStr string) (string, error) { - if !strings.HasPrefix(urlStr, "http://") && !strings.HasPrefix(urlStr, "https://") { - urlStr = "https://" + urlStr - } - parsedURL, err := url.Parse(urlStr) if err != nil { return "", err } - return parsedURL.Hostname(), nil + return parsedURL.Host, nil }