added last fixes for dev branch prepartion

This commit is contained in:
2025-11-27 23:50:59 +01:00
parent 145dfd3d7c
commit 688b277b5d
13 changed files with 1051 additions and 158 deletions

View File

@@ -13,6 +13,8 @@ import (
"strings"
"time"
"certigo-addon-backend/providers"
"github.com/google/uuid"
)
@@ -60,10 +62,23 @@ func CalculateCertID(certPEM string) (string, error) {
return certID, nil
}
// FetchRenewalInfo ruft die RenewalInfo von Let's Encrypt ab
func FetchRenewalInfo(certID string) (*RenewalInfoResponse, error) {
// Let's Encrypt RenewalInfo API URL (Staging)
url := fmt.Sprintf("https://acme-staging-v02.api.letsencrypt.org/acme/renewal-info/%s", certID)
// FetchRenewalInfo ruft die RenewalInfo von einem ACME-Server ab
func FetchRenewalInfo(providerID string, certID string) (*RenewalInfoResponse, error) {
// Hole ACME-Provider
acmeManager := providers.GetACMEManager()
provider, exists := acmeManager.GetACMEProvider(providerID)
if !exists {
return nil, fmt.Errorf("ACME-Provider '%s' nicht gefunden", providerID)
}
// Hole RenewalInfo URL vom Provider
renewalInfoURL := provider.GetRenewalInfoURL()
if renewalInfoURL == "" {
return nil, fmt.Errorf("ACME-Provider '%s' unterstützt keine RenewalInfo API", providerID)
}
// Erstelle URL mit CertID
url := fmt.Sprintf("%s/%s", renewalInfoURL, certID)
// HTTP Request
client := &http.Client{
@@ -143,7 +158,10 @@ func ProcessRenewalInfoForCertificate(certPEM string, certID string, fqdnID stri
}
// Rufe RenewalInfo ab
renewalInfo, err := FetchRenewalInfo(certIDBase64)
// TODO: ACME-Provider-ID aus Zertifikat/FQDN-Konfiguration holen
// Standardmäßig verwenden wir Let's Encrypt Staging
acmeProviderID := "letsencrypt-staging"
renewalInfo, err := FetchRenewalInfo(acmeProviderID, certIDBase64)
if err != nil {
// Prüfe ob es ein Staging-Zertifikat ist (RenewalInfo nicht verfügbar)
if strings.Contains(err.Error(), "Staging-Zertifikate") {