implemented LE and ACME and fixed some bugs
This commit is contained in:
65
backend/cert_logger.go
Normal file
65
backend/cert_logger.go
Normal file
@@ -0,0 +1,65 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
)
|
||||
|
||||
var certLogger *log.Logger
|
||||
var certLogFile *os.File
|
||||
|
||||
// initCertLogger initialisiert das Logging-System für Zertifikatsanfragen
|
||||
func initCertLogger() error {
|
||||
logDir := "logs"
|
||||
if err := os.MkdirAll(logDir, 0755); err != nil {
|
||||
return fmt.Errorf("fehler beim Erstellen des Log-Verzeichnisses: %v", err)
|
||||
}
|
||||
|
||||
logFile := filepath.Join(logDir, fmt.Sprintf("cert-requests-%s.log", time.Now().Format("2006-01-02")))
|
||||
file, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
|
||||
if err != nil {
|
||||
return fmt.Errorf("fehler beim Öffnen der Log-Datei: %v", err)
|
||||
}
|
||||
|
||||
certLogFile = file
|
||||
certLogger = log.New(file, "", log.LstdFlags)
|
||||
return nil
|
||||
}
|
||||
|
||||
// generateTraceID generiert eine eindeutige TraceID für einen Vorgang
|
||||
func generateTraceID() string {
|
||||
bytes := make([]byte, 8)
|
||||
rand.Read(bytes)
|
||||
return hex.EncodeToString(bytes)
|
||||
}
|
||||
|
||||
// logCertStatus schreibt einen Status-Eintrag in die Log-Datei
|
||||
// traceID: Eindeutige ID für den Vorgang
|
||||
// step: Name des Schritts (z.B. "DNS_PRÜFUNG", "REGISTER_AUFRUF", "ACCOUNT_ERSTELLUNG", "ORDER_ERSTELLUNG", "CHALLENGE_VALIDIERUNG", "ZERTIFIKAT_ERSTELLT")
|
||||
// status: "OK" oder "FAILED"
|
||||
// message: Fehlermeldung bei FAILED, leer bei OK
|
||||
func logCertStatus(traceID, fqdnID, step, status, message string) {
|
||||
if certLogger == nil {
|
||||
return
|
||||
}
|
||||
|
||||
timestamp := time.Now().Format("2006-01-02 15:04:05")
|
||||
if status == "OK" {
|
||||
certLogger.Printf("[%s] TRACE_ID=%s FQDN_ID=%s VORGANG=%s STATUS=OK", timestamp, traceID, fqdnID, step)
|
||||
} else {
|
||||
certLogger.Printf("[%s] TRACE_ID=%s FQDN_ID=%s VORGANG=%s STATUS=FAILED ERROR=%s", timestamp, traceID, fqdnID, step, message)
|
||||
}
|
||||
}
|
||||
|
||||
// closeCertLogger schließt die Log-Datei
|
||||
func closeCertLogger() {
|
||||
if certLogFile != nil {
|
||||
certLogFile.Close()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user