Kategorie:OPNsense/Zertifikatsverwaltung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= Zertifikatsverwaltung =
Mit dem Let's-Encrypt-Plugin können Sie für Ihre Webdienste kostenlos gültige X.509-Zertifikate von der Zertifizierungsstelle Let's Encrypt generieren. Dies ermöglicht eine verschlüsselte Nutzung Ihrer Webdienste über https ohne Zertifikatswarnungen. Auch für verschlüsselte ldap-Anfragen an den Samba-Server können Let's-Encrypt-Zertifikate eingesetzt werden.
Mit dem Let's-Encrypt-Plugin können Sie für Ihre Webdienste kostenlos gültige X.509-Zertifikate von der Zertifizierungsstelle Let's Encrypt generieren. Dies ermöglicht eine verschlüsselte Nutzung Ihrer Webdienste über https ohne Zertifikatswarnungen. Auch für verschlüsselte ldap-Anfragen an den Samba-Server können Let's-Encrypt-Zertifikate eingesetzt werden.



Version vom 9. Dezember 2022, 14:39 Uhr

Mit dem Let's-Encrypt-Plugin können Sie für Ihre Webdienste kostenlos gültige X.509-Zertifikate von der Zertifizierungsstelle Let's Encrypt generieren. Dies ermöglicht eine verschlüsselte Nutzung Ihrer Webdienste über https ohne Zertifikatswarnungen. Auch für verschlüsselte ldap-Anfragen an den Samba-Server können Let's-Encrypt-Zertifikate eingesetzt werden.

Installation und Konfiguration des acme-Plugins

Das Plugin muss zunächst über die Firmwareverwaltung installiert werden:


System / Firmware / Plugins / os-acme-client → Install


Grundkonfiguration

Services / Let's Encrypt / Settings* Haken bei: Enable Plugin
  • Haken bei: Auto Renewal
  • Let's Encrypt Environment: Production Environment [default]
  • Haken bei HAProxy Integration



Anlage eines Let's-Encrypt-Kontos

Services / Let's Encrypt / Accounts → Add* Haken bei: enabled
  • Name: z. B. lets-encrypt-production
  • E-Mail-Address: <an diese E-Mail-Adresse gelangen ihre Zertifikate betreffende Informationen wie z. B. Warnungen bei Ablauf der Gültigkeit>



Anlage einer Validierungsmethode

Services / Let's Encrypt / Validadtion Methods → Add* Haken bei: enabled
  • Name: z. B. http-01
  • Challenge Type: HTTP-01
  • HTTP-01
    • HTTP Service: HAProxy HTTP Frontend Integration (OPNsense plugin)
  • HAProxy
    • Haken bei: Enable Auto-Configuration
    • HAProxy Frontends: http_lan_wan



Anlage von Zertifikaten

Richten Sie für jeden Ihrer Webdienste - auch für jene, die nur innerhalb des Schulhauses erreichbar sein sollen - ein Zertifikat ein.

Beispiel für den Webdienst Nextcloud:


Services / Let's Encrypt / Certificates → Add* Haken bei: enabled
  • Common Name: nextcloud.ihre-schule.de
  • Alt Names: z. B. www.nextcloud.ihre-schule.de (damit der Dienst auch mit vorangestelltem www erreichbar ist)
  • LE Account: z. B. lets-encrypt-production
  • Validation Method: http-01
  • Haken bei: Auto Renewal
  • Renewal Interval: 60



Den HAProxy für die Verwendung von Let's Encrypt konfigurieren

Durch die Angaben unter Settings und bei der Validierungsmethode http-01 hat das Let's-Encrypt-Plugin entsprechende Eintragungen im HAProxy vorgenommen. Überprüfen Sie deren Anwesenheit:


* HAProxy / Settings / Real Servers → acme_challenge_host
    • Server Address: 127.0.0.1
    • Server Port: 43580
  • HAProxy / Settings / Virtual Services / Backend Pools → acme_challenge_backend
    • Server: acme_challenge_host
  • HAProxy / Settings / Rules & Checks / Conditions → find_acme_challenge
    • Condition Type: Path starts with
    • Path Prefix: /.well-known/acme-challenge/
  • HAProxy / Settings / Rules & Checks / Rules → redirect_acme_challenges
    • Test type: IF
    • Select conditions: find_acme_challenge
    • Logical Operator: AND
    • Execute function: Use specified Backend Pool
    • Use backend pool: acme_challenge_backend



Stellen Sie sicher, dass im Public Service http_lan_wan die Regel redirect_acme_challenges an erster Stelle auftaucht. Sie können die Reihenfolge per Drag & Drop ändern:


HAProxy / Settings / Virtual Services / Public Services → http_lan_wan* Select Rules: redirect_acme_challenges (vor allen anderen Regeln)



Zertifikate generieren

Nachdem der HAProxy für die ACME-Challenge-Anfragen konfiguriert ist, können nun die Zertifikate generiert werden:


Services / Let's Encrypt / Certificates → Issue/Renew Certificates Now (bzw. Klick auf das Neu-Laden-Symbol neben jedem Zertifikat)

Ob das Generieren der Zertifikate funktioniert hat, kann unter Services / Let's Encrypt / Log File nachverfolgt werden. Suchen Sie bei Problemen nach dem Schlagwort "error".

Zertifikate im HAProxy hinterlegen

Damit der HAProxy die mit Let's Encrypt generierten Zertifikate nun bei https-Anfragen bereitstellt, müssen diese bei den entsprechenden Public-Services hinterlegt werden:


Services / HAProxy / Settings / Virtual Services / Public Services / https_lan (Dienst für ausschließlich interne https-Anfragen)* SSL Offloading / Certificates: z. B. fog.ihre-schule.de, usermanagement.ihre-schule.de (Entfernen Sie das zuvor hinterlegte Zertifikat: Web GUI SSL certificate)


Services / HAProxy / Settings / Virtual Services / Public Services / https_lan_wan (Dienst für interne und externe https-Anfragen)* SSL Offloading / Certificates: z. B. nextcloud.ihre-schule.de, collabora.ihre-schule.de (Entfernen Sie das zuvor hinterlegte Zertifikat: Web GUI SSL certificate)



Besonderheit: Zertifikat für verschlüsselte ldap-Anfragen an den Samba-Server

Da der HAProxy die ldap-Anfragen nicht verarbeiten kann, wird der betroffene Port 636 für Anfragen von außen über eine NAT-Regel an den Samba-Server weitergeleitet:


Firewall / NAT / Port Forward→ Add* Interface: WAN
  • Protocol: TCP/UDP
  • Desintation: WAN Adress From Port 636 To Port 636
  • Redirect Target IP: 10.1.100.7 (IP Samba-Server)
  • Redirect Target Port: 636
  • Description: samba-ldap



Die Zertifikatsgenerierung für ldap.ihre-schule.de soll aber trotzdem über das Let's-Encrypt-Plugin nach obigen Beispiel erfolgen.

Da der HAProxy die ldap-Anfragen aber nicht entgegennimmt, muss der Samba-Server selbst die Zertifikatsinformationen erhalten und ausgeben. Nachdem das Let's-Encrypt-Plugin das Zertifikat für ldap.ihre-schule.de generiert bzw. erneuert hat, soll es die Zertifikatsdateien also auf den Samba-Server kopieren. Hierzu sind die nachfolgenden Schritte erforderlich:

SSH-Kommunikation zwischen Samba-Server und OPNsense vorbereiten

Siehe hierzu die Beschreibung zum Samba-Server.

Skript zum Kopieren der Zertifikate

Damit nach einer Erneuerung des Zertifikats von ldap.ihre-schule.de durch das Let's-Encrypt-Plugin dieses auf dem LDAP-Server landet, ist ein Skript erforderlich, welches die Dateien von OPNsense auf den LDAP-Server kopiert, entsprechende Dateiberechtigungen setzt und den Domänen-Controller neu startet.

Dieses Skript wird in OPNsense so hinterlegt, dass es später an entsprechender Stelle in der Webmin-Oberfläche ausgewählt werden kann.

Achten Sie bei der Verwendung der nachfolgenden Datei auf die Verwendung der richtigen IP-Adresse und Pfade.

vi /usr/local/opnsense/service/conf/actions.d/actions_ldapserver.conf

Datei vi /usr/local/opnsense/service/conf/actions.d/actions_ldapserver.conf

[ldap-upload-certs] command:scp -i /root/.ssh/id_rsa_samba /var/etc/acme-client/home/ldap.ihre-schule.de/* root@10.1.100.7:/etc/samba/tls parameters: type:script message:copy certificates to ldap-server description:LDAP-Server - Copy Certificates

[ldap-restart-dc] command:ssh -i /root/.ssh/id_rsa_samba root@10.1.100.7 "chmod -R 0600 /etc/samba/tls && service samba-ad-dc restart" parameters: type:script message:restarting ldap-server-dc description:LDAP-Server - Restart DC

Damit das Skript im System zur Verfügung steht muss der Dienst configd neu gestartet werden:

service configd restart

Skript beim Let's-Encrypt-Zertifikat hinterlegen

Zunächst müssen die beiden Aktionen des Skriptes als Automatisierungsaufgaben im Let's-Encrypt-Plugin definiert werden:


Services / Let's Encrypt / Automation → Add* 1. Automatisierungsaufgabe
    • Haken bei: enabled
    • Name: LDAP-Server - Copy Certificates
    • Run Command: System or Plugin Command
    • System Command: LDAP-Server - Copy Certificates
  • 2. Automatisierungsaufgabe
    • Haken bei: enabled
    • Name: LDAP-Server - Restart DC
    • Run Command: System or Plugin Command
    • System Command: LDAP-Server - Restart DC



Anschließend werden die beiden Automatisierungsaufgaben dem Zertifikat ldap.ihre-schule.de zugeordnet.


Services / Let's Encrypt / Certificates / ldap.ihre-schule.de → edit* Automations (Achtung: Reihenfolge einhalten!)
    • 1. Aufgabe: LDAP-Server - Copy Certificates
    • 2. Aufgabe: LDAP-Server - Restart DC



Somit werden nach Erneuerung des Zertifikats für ldap.ihre-schule.de automatisch die Zertifikatsdateien auf den LDAP-Server kopiert und anschließend der DC-Dienst neu gestartet.= Installation und Konfiguration des OpenVPN-Servers =

Diese Kategorie enthält zurzeit keine Seiten oder Medien.