agorum core (open) mit Zertifikat versehen / Let's Encrypt

  • #ChatGPT meint dazu:

    Zitat

    Um agorumcore mit einem SSL-Zertifikat von Let's Encrypt zu versehen, müssen Sie zunächst ein Zertifikat von Let's Encrypt für Ihre Domain erstellen. Hier ist eine Schritt-für-Schritt-Anleitung:

    1. Installieren Sie Certbot auf Ihrem Server. Certbot ist ein Werkzeug, das von Let's Encrypt bereitgestellt wird, um SSL-Zertifikate zu generieren und zu verwalten.
    2. Führen Sie Certbot aus und wählen Sie Ihre Webserver-Software aus. Folgen Sie den Anweisungen auf dem Bildschirm, um das Zertifikat zu generieren. Certbot sollte in der Lage sein, die erforderlichen Änderungen an Ihrer Webserver-Konfiguration vorzunehmen, um das Zertifikat zu aktivieren.
    3. Überprüfen Sie Ihre agorumcore-Konfigurationsdatei. Stellen Sie sicher, dass Ihre Konfigurationsdatei das neue SSL-Zertifikat verwendet. Öffnen Sie dazu die Datei /etc/agorumcore/server.conf und suchen Sie nach den folgenden Zeilen:

      ssl_enable = true ssl_certfile = /path/to/your/certfile.crt ssl_keyfile = /path/to/your/keyfile.key

    4. Passen Sie diese Zeilen an, um das neue SSL-Zertifikat zu verwenden. Ersetzen Sie den Pfad zu Ihrem Zertifikat und Schlüsseldatei durch den Pfad zu den entsprechenden Dateien, die von Certbot generiert wurden. Wenn Sie die Standardpfade für Certbot verwenden, sollten die Zeilen folgendermaßen aussehen:

      ssl_enable = true ssl_certfile = /etc/letsencrypt/live/yourdomain.com/fullchain.pem ssl_keyfile = /etc/letsencrypt/live/yourdomain.com/privkey.pem

    5. Starten Sie Ihren agorumcore-Server neu, damit die Änderungen wirksam werden.

    Nachdem Sie diese Schritte ausgeführt haben, sollte Ihr agorumcore-Server mit einem SSL-Zertifikat von Let's Encrypt versehen sein. Sie können die Gültigkeit des Zertifikats mit einem SSL-Checker wie SSL Labs überprüfen, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

    Aber vielleicht gibt es ja was offizielles von Euch, bevor man sich damit die agorumcore-Installation zerschießt. Es geht ja auch darum, wie sich das Zertifikat autom. verlängern lässt. Ich möchte agorumcore ungern mit TCP80 und TCP443 ins Internet stellen, nur wegen des Zertifikates, wenn es doch sonst nur intern genutzt wird.

    • Offizieller Beitrag

    Hallo JanR ,


    als frischgebackener agorumianer hab ich mich Deiner Frage einmal angenommen und dabei folgendes rausgefunden:


    Tatsächlich sollte es kein Problem sein, für Deinen agorum core open Webserver ein SSL-Zertifikat über letsencrypt zu bekommen. Dafür kannst Du certbot mit letsencrypt verwenden (https://certbot.eff.org/), allerdings funktioniert das nur über Umwege, wenn Du versuchst eine lokale Domain bzw. einen lokalen Server zu sichern, denn die CA lehnt eine Zertifizierung für diese Adressen grundsätzlich ab.

    Letsencrypt selbst spielt die Problematik diesem Link folgend (https://letsencrypt.org/de/docs/certificates-for-localhost/) selbst durch und kommt zu dem Ergebnis, dass hier nur selbst erstellte (und selbst gezeichnete) Zertifikate Abhilfe schaffen können, die allerdings entsprechend wenig vertrauenswürdig sind und nur in Entwicklungsumgebungen verwendet werden sollten.

    Ich habe mir für morgen nochmal ein Zeitfenster reserviert und prüfe, ob man das Problem evtl. über einen lokalen DNS-Server in Verbindung mit einem NGINX- reverse Proxy umgehen kann. Ich komme dann nochmal auf Dich zu 😉


    Bei Fragen oder Anregungen freue ich mich auf Deine Antwort hier im Forum!

  • Hi Oliver Kaufmann ,


    wenn ich aber eine öffentliche Sub-Domain dafür einsetze, sollte es funktionieren, oder?

    Vorgehen also:

    1. öffentliche Sub-Domain intern bei uns auf die richtige IP konnektieren - z.B. über einen DNS-Eintrag dms.meine-domain.de -> 192.168.178.11 .
    2. certbot mit letsencrypt auf agorum-System einrichten
    3. Validierung über DNS-Eintrag (statt TCP80) einrichten

    Wäre das ein Ansatz? Dann würde ich es mal testen.

  • Oliver Kaufmann , bisher leider nur mäßig erfolgreich.

    1. Certbot & DNS kein Problem.
    2. Zertifikat erfolgreich generiert:
    3. Zertifikat mittels ./keytool erfolgreich importiert:


    4. agorumcore neu gestartet

    Es findet aber weiterhin das Original-Zertifikat Verwendung:

    Wo kann ich dem Webserver nur mitteilen, dass er dieses neue Zertifikat nutzen soll?


    (Herausforderung wird dann noch, wie man per cron das ganze automatisiert. Denn niemand möchte alle 90 Tage per SSH den renew anstoßen. So etwas, bis auf das Thema DNS, wäre sicher sinnvoll im Admin-Tool von agorumcore.)

    VG
    Jan

  • JanR

    Soweit ich weiss, muss das neue Zertifikat das alias "tomcat" haben.
    Dazu musst du natürlich zuerst das alte zertifikat mit alias "tomcat" entfernen um dann das neue entsprechend hinzufügen zu können, da der alias unique sein muss.

    Gut möglich, dass du dein *.pem-Zertifikat vorher in *.pfx konvertieren musst:

    Code
    openssl pkcs12 -inkey bob_key.pem -in bob_cert.cert -export -out bob_pfx.pfx

    Quelle...

    1. Importieren Sie das Zertifikat mit folgendem Befehl:
      Code
      ./keytool -importkeystore -srckeystore ihr-zertifikats-file.pfx -srcstoretype pkcs12 -destkeystore /root/.keystore
      Ergebnis: Nach erfolgreichem Import wird der alias des soeben importierten Zertifikats in der Konsole ausgegeben. Diesen alias benötigen Sie für Schritt 3.
    2. Löschen Sie das vorhandene (alte) Zertifikat mit dem alias tomcat mit folgendem Befehl:
      Code
      ./keytool -delete -alias tomcat -keystore /root/.keystore
    3. Benennen Sie den Zertifikats-alias in tomcat mit folgendem Befehl um. Als keystore-Password geben Sie changeit ein, als zweites Passwort das Passwort des Zertifikats:
      Code
      ./keytool -changealias -alias alias-des-importierten-zertifikats -destalias tomcat -keystore /root/.keystore
    4. Ändern Sie das Passwort des Zertifikats in changeit mit folgendem Befehl und verwenden Sie folgende Passwörter:
      Code
      .\keytool -keypasswd -alias tomcat -keystore c:\Windows\System32\config\systemprofile\.keystore


      Passwort des Keystores

      changeit



      Passwort des Private Keys

      Ihr-Passwort



      Zweimalige Eingabe des neuen Passworts

      changeit
    5. Starten Sie agorum core neu.




    Doku siehe auch hier

    • Offizieller Beitrag

    Hallo Jan,


    das ist in der Tat merkwürdig. Hattest Du den agorumcore.service während des Prozesses deaktiviert und anschließend den Webserver neu gestartet? Prüfe doch bitte auch einmal die Zuordnung des Zertifikats. Die müsstest Du (unter Debian) in der Konsole mit folgendem Befehl anzeigen lassen können:


    Code
    sudo openssl x509 -in /etc/ssl/certs/<NAMEDEINERZERTIFIKATSDATEI.pem> -noout -text
  • Oliver Kaufmann , "sudo" ist über das terminal im Webfrontend nicht bekannt.
    Ohne sudo sieht es so aus:


    PS: Die vielen GIF in Deinem Beitrag sind alle schwarze Flächen ... 🤷‍♂️


    Der Service war nicht deaktiviert (Steht das irgendwo? In der Doku habe ich das dann übersehen?).
    Neustart agorumcore mittels stop/start aus /opt/agorum/agorumcore/scripts ist erfolgt.


    volker.trotte hat oben noch etwas ausgeführt. Wie sieht es damit aus? Kommt ja zu 90% aus der offiziellen Doku. Soll ich das so umsetzen, Oliver Kaufmann ?
    Ich möchte nur unnötiges Basteln vermeiden.

    Danke und Grüße,


    Jan

    • Offizieller Beitrag

    JanR danke für den Hinweis! Das mit den GIFs habe ich beim Posten gesehen, allerdings hab ich keine Ahnung, wo die herkommen, da muss ich später mal die Kollegin zu interviewen...mein Clipboard war eigentlich leer 🤨 zu Deiner Frage, Du kannst den sudo-Befehlssatz auch über die Konsole mit

    Code
    apt-get install sudo

    nachträglich installieren. Die Anweisung, dass agorum während des Zertifizierungsprozesses nicht auf Port 80 laufen darf oder deaktiviert werden sollte, ist noch Teil einer internen Doku zu den letsencrypt-Zertifikaten, die aber aus offensichtlichen Gründen noch nicht veröffentlicht wurde.


    Ich muss gestehen, dass ich noch nicht so tief in die administrative Doku von agorum vorgedrungen bin, aber es klingt für mich nachvollziehbar, dass wenn der Server für das Zertifikat einen bestimmten Alias erwartet, das ursprüngliche Zertifikat mit dem korrekten alias solange aktiv bleibt, bis es ersetzt wurde. Dementsprechend vielen lieben Dank für volker.trotte Input und ja, es wär es super, wenn Du das Testest und uns teilhaben lässt, ob das für Dich zur Lösung führt.

  • volker.trotte Hier scheint die Doku nicht zu stimmen (auch wichtig für Euch, Oliver Kaufmann , denke ich):

    Ist ja kein Windows, sondern ein 🐧.

    Habt Ihr für mich hier den richtigen Befehl griffbereit?

    Edit: Der dürfte es sein ".\keytool -keypasswd -alias tomcat -keystore /root/.keystore" (Aber die Doku passt dann trotzdem nicht!)

    Der Befehl ist schon der richtige, nur der Pfad ist in der falschen form angegen. müsste wohl

    Code
    keytool -keypasswd  -alias <key_name> -keystore my.keystore


    Code
    /root/keystore

    lauten




    Edit: ahh erst jetzt gesehen, dass es dir schon aufgefallen ist :)

  • So long ... 🚀.
    Großer Dank an volker.trotte !


    Und wie bekommen wir das jetzt automatisiert?
    ⏰ cron für den CertBot alle 85-Tage ist ja augenscheinlich kein Thema mittels "renew".


    Aber der Transfer in den agorumcore-Webserver ist ja offensichtlich aktuell nur manuell möglich.


    PS Wie ist das denn, meinetwegen auch in der Bezahlversion, gelöst? Oder klicken ALLE agorumcore-Kunden die Sicherheitswarnungen weg bzw. installieren sich das enthaltene Zertifikat als vertrauenswürdige Stammzertifizierungsstelle. Wäre ja beides nicht so unbedingt optimal.

  • @Jan.


    Zitat

    PS Wie ist das denn, meinetwegen auch in der Bezahlversion, gelöst? Oder klicken ALLE agorumcore-Kunden die Sicherheitswarnungen weg bzw. installieren sich das enthaltene Zertifikat als vertrauenswürdige Stammzertifizierungsstelle. Wäre ja beides nicht so unbedingt optimal.

    Die meisten größeren Kunden (bei uns) haben über ihr Active Directory einfach eine eigene Stammzertifizierungsstelle aufgebaut (geht relativ einfach) und haben das Zertifikat dann via AD auf alle clients verteilt. und einmalig im agorum eingespielt.

    Zitat

    Aber der Transfer in den agorumcore-Webserver ist ja offensichtlich aktuell nur manuell möglich.

    Alle Schritte die du grad gemacht hast, dürften auch automatisierbar sein. Das ist ja das schöne bei Linux.

    einfach ein entsprechendes shell-script bauen und und per crontab o.ä. einbinden.

  • volker.trotte , ich versuche mich gerade an dem Skript.
    Wie kann ich denn bei diesen Befehlen non-interactive arbeiten und die Kennwörter übergeben?


    ./keytool -importkeystore -srckeystore fullchain.pfx -srcstoretype pkcs12 -destkeystore /root/.keystore
    (Hier brauche ich ja das Zielkeystore-Kennwort und das zuvor bei der Konvertierung definierte Quell-Keystore-Kennwort)

    (Auch muss ich hier den Alias-Name/Nummer ermitteln und in einer Variable speichern)


    ./keytool -delete -alias tomcat -keystore /root/.keystore

    (Hier brauche ich ja das Zielkeystore-Kennwort)


    ./keytool -changealias -alias 1 -destalias tomcat -keystore /root/.keystore

    (Hier brauche ich wieder das Zielkeystore-Kennwort und das zuvor definierte Kennwort)

    (Und ich brauche hier jetzt den in einer Variable gespeicherte Alias-Name/Nummer)


    .\keytool -keypasswd -alias tomcat -keystore /root/.keystore

    (Und hier brauch ich dann den Keystore-Wert, den Schlüsselwert und muss den neuen Schlüsselwert übergeben)


    Da bin ich gerade "etwas" überfordert. ;)


    Kannst Du oder jemand vom agorumcore-Team ( Oliver Kaufmann ) hier helfen?





Jetzt Teil von agorum Community werden!

Noch kein Benutzerkonto? Registriere dich kostenlos und werde Teil von agorum Community!