• Bewerte uns auf OMR Reviews: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

LetsEncrypt Zertifikate für Konnektoren

dominic

New member
Hallo in die Runde,

ich habe eine kleine Frage, bin leider bei der Suche nicht fündig geworden.

Ist ist ja möglich Zertifikate manuell für die Empfangskonnektoren aus zu wählen. Ich stelle mir jetzt aber die Frage, wenn ich ein Zertifikate von LetsEncrypt verwende, muss ich dieses ja spätestens alle 3 Monate manuell wieder anpassen. Gibt es hier einen anderen Weg ggf. per Powershell oder ist dies schlichtweg nicht so "gewünscht" und man soll auf ein Jahreszertifikat einer anderen CA setzen?

Vielen Dank.
 
Hallo Dominic,

sry das Thema ist völlig untergegangen :(
Du kannst den Prozess automatisieren indem du die Lets Encrypt Zertifikate automatisch in Windows importierst, mit den Rechten für den NSP versiehst und dann mittels PowerShell die Konnektoren aktualisierst.

Dies kannst du z.B. mittels folgendem Befehl machen:
C#:
    Get-NspReceiveConnector -Type Smtp | Where-Object {$_.Port -eq 25} | Set-NspReceiveConnector -Smtp -ServerCertificateThumbprint $MailCertificateThumbprint

Grüße
Jan
 
Hallo Jan,

ich klinke mich hier einmal mit in das Thema ein, da es ziemlich genau das ist was ich aktuell auch versuche.

Der Import in Windows ist kein Problem und über den Powershellbefehl kriege ich mein Zertifikat auch im NSP problemlos importiert, allerdings zeigt mir der NSP danach den Fehler

Code:
Source:    Gateway Role 'Hostname'
Severity:    Error
Date and time:    08.09.2023 10:49:41
Content:    An unexpected error occurred while verifying access to the private hash of the certificate with the thumbprint ' Thumbprint des Zertifikats '.  Invalid provider type specified.
  It is used by the connector(s) ' SMTP on all addresses '.

Was genau meinst du mit "Rechten für den NSP"? Welche speziellen Rechte muss ich meinem Zertifikat zuweisen?
Wenn ich genau das Zertifikat händisch sowohl im Windows Zertifikatsspeicher installiere als auch im NSP auswähle gibt er mir keine Fehlermeldung aus.
Der zum Import verwendete Code schaut folgendermaßen aus:

Code:
$ImportCert = Import-PfxCertificate -FilePath $PSScriptRoot\Zertifikat\zertifikat.pfx -CertStoreLocation 'Cert:\LocalMachine\My' -Password $passpfx

Connect-Nsp -IgnoreServerCertificateErrors
Get-NspReceiveConnector -Type Smtp | Where-Object {$_.Port -eq 25} | Set-NspReceiveConnector -Smtp -ServerCertificateThumbprint $ImportCert.Thumbprint

Vielen Dank im Voraus
 
Was genau meinst du mit "Rechten für den NSP"? Welche speziellen Rechte muss ich meinem Zertifikat zuweisen?
Dann lass ich mal die Katze aus dem Sack. Ich habe dafür seit längerem einen PowerShell Skript (https://codeberg.org/wd/Powershell-Skripte/src/branch/master/NoSpamProxy/Set-CertificatePermissions) geschrieben um mir jedes Mal den Aufwand und Nachdenken zu sparen. Eigentlich steht das QM noch aus, aber da sieht man heute ja nicht mehr so eng. ;)
Der Import in Windows ist kein Problem und über den Powershellbefehl kriege ich mein Zertifikat auch im NSP problemlos importiert

Welche Version von NSP setzt du ein? Ist das Zertifikat von Let's Encrypt oder aus einer anderen Quelle?
 
Dann lass ich mal die Katze aus dem Sack. Ich habe dafür seit längerem einen PowerShell Skript (https://codeberg.org/wd/Powershell-Skripte/src/branch/master/NoSpamProxy/Set-CertificatePermissions) geschrieben um mir jedes Mal den Aufwand und Nachdenken zu sparen. Eigentlich steht das QM noch aus, aber da sieht man heute ja nicht mehr so eng. ;)
Das was ich in deinem Script an Angaben finde wird mir vermutlich schon reichen - sobald es meine Zeit mir erlaubt teste ich das mal in abgeänderter Form zu implementieren.

Welche Version von NSP setzt du ein? Ist das Zertifikat von Let's Encrypt oder aus einer anderen Quelle?
Aktuell verwende ich NSP in Version 14.0.5.39, das Zertifikat stammt in der Tat von Let's Encrypt.
Bezogen wird das Zertifikat über einen ACME Client auf meiner OPNsense und per scp ziehe ich mir da die Bestandteile (Zertifikat und Schlüssel) runter und baue via openssl eine für Windows passende pfx. Da die händische Installation problemlos funktioniert gehe ich davon aus, dass die Datei als solche richtig erstellt ist.
 
Das was ich in deinem Script an Angaben finde wird mir vermutlich schon reichen - sobald es meine Zeit mir erlaubt teste ich das mal in abgeänderter Form zu implementieren.
Bitte Copyright beachten. Denn es heißt nicht, weil es frei verfügbar ist, dass man tun und lassen kann, was man möchte. Leider in letzter Zeit schlechte Erfahrung damit gemacht und daher habe ich lange mit einer Veröffentlichung gezögert.

Bezogen wird das Zertifikat über einen ACME Client auf meiner OPNsense und per scp ziehe ich mir da die Bestandteile (Zertifikat und Schlüssel) runter und baue via openssl eine für Windows passende pfx.
Oha... du hast wohl zu viel Zeit. Sowas würde ich grundsätzlich direkt beim betroffenen Server über DNS Challenge realisieren. Das wäre mir alles zu sehr fehleranfällig.
 
Bezogen wird das Zertifikat über einen ACME Client auf meiner OPNsense
Ich lasse auf meinem produktiven NSP certifytheweb laufen, dass läuft ohne Probleme seit drei Jahren:


das tauscht auch direkt die Zertifikate im IIS und du kannst noch post hooks mitgeben wie das von Daniel um das direkt auf die GW Rollen zu binden:

1694464682628.png
 
Bitte Copyright beachten. Denn es heißt nicht, weil es frei verfügbar ist, dass man tun und lassen kann, was man möchte. Leider in letzter Zeit schlechte Erfahrung damit gemacht und daher habe ich lange mit einer Veröffentlichung gezögert.
Schreib mir deine Bedenken gerne in einer PN, prinzipiell hatte ich vor deine Funktion Set-CertPrivateKeyPermission in angepasster Form einzusetzen.

Oha... du hast wohl zu viel Zeit. Sowas würde ich grundsätzlich direkt beim betroffenen Server über DNS Challenge realisieren. Das wäre mir alles zu sehr fehleranfällig.
Wäre die Struktur nicht so historisch gewachsen wie sie ist (div. Domains bei verschiedenen Anbietern die aber auf ein Zertifikat laufen sollen) wäre mir ein anderer Weg auch lieber, so hat mich die Implementierung bisher gut zwei Stunden gekostet.
Ich lasse auf meinem produktiven NSP certifytheweb laufen, dass läuft ohne Probleme seit drei Jahren:
Da die OPNsense u.a. als Reverse Proxy für den Exchange fungiert benötigt diese zwangsläufig auch ein Zertifikat, daher den Weg sich die Dateien direkt dort zu holen. Den Hinweis zu certifytheweb werde ich mir aber auf jeden Fall merken, auch für andere Projekte.
 
Zurück
Oben