Änderungen von Dokument Lets Encrypt Zertifikat zum FreeRADIUS-Dienst im logosrv übertragen
Zuletzt geändert von Jonas Mayer am 2022/05/17 10:46
Von Version 3.1
bearbeitet von Christian Germann
am 2022/05/06 14:11
am 2022/05/06 14:11
Änderungskommentar:
Neuen Anhang image-20220506141124-1.png hochladen
Auf Version 10.1
bearbeitet von Jonas Mayer
am 2022/05/09 13:36
am 2022/05/09 13:36
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. cge@sbede1 +XWiki.jonasmayer@sbede - Inhalt
-
... ... @@ -1,11 +1,16 @@ 1 1 Im Zuge der stärkeren Verbreitung von Android 11 (oder neuer) und des WPA3-Standards ist es nötig, bei RADIUS-gesicherten WLAN-Netzen sauber signierte SSL-Zertifikate am RADIUS-Server einzusetzen, damit die Clients eine Verbindung herstellen können. 2 - 3 3 Daher wurde ab Puppet-Version 1.5.0 die Möglichkeit implementiert, ein ausgewähltes Let's Encrypt Zertifikat zum FreeRADIUS-Dienst im logosrv zu übertragen. Folgende Anpassungen sind dazu nötig. 4 4 5 - **1.**(%style="color:#3498db"%)**[puppeteer]**(%%) Neues Let's Encrypt SSL-Zertifikat per acmetool oder acme.shbeantragen, hierfür einen geeigneten Namen verwenden (z.B. wlan.ShortName.logoip.de oderradius.ShortName.logoip.de). Danach 2x prun ausführen.4 +{{toc start="4" numbered="true"/}} 6 6 7 -**2.** (% style="color:#3498db" %)**[puppeteer]**(%%) Folgenden Inhalt in die YAML-Datei /etc/logodidact/hiera/custom.d/ldhost.yaml eintragen bzw. ergänzen (ShortName entsprechend im Codeblock anpassen) 8 8 7 +==== __Nötige Konfigurationsschritte__ ==== 8 + 9 + 10 +**1.** (% style="color:#3498db" %)**[im puppeteer]**(%%) Neues Let's Encrypt SSL-Zertifikat per acmetool oder acme.sh beantragen, hierfür einen geeigneten Namen verwenden (z.B. wlan.ShortName.logoip.de oder radius.ShortName.logoip.de). Danach 2x prun ausführen. 11 + 12 +**2.** (% style="color:#3498db" %)**[im puppeteer]**(%%) Folgenden Inhalt in die YAML-Datei /etc/logodidact/hiera/custom.d/ldhost.yaml eintragen bzw. ergänzen (ShortName entsprechend im Codeblock anpassen) 13 + 9 9 {{code language="bash"}} 10 10 # Transfer Let's Encrypt SSL certificate to logosrv (target dir = /etc/freeradius/certs) 11 11 ld_legacy::radius::ensure: true ... ... @@ -12,20 +12,81 @@ 12 12 ld_legacy::radius::cn: 'wlan.ShortName.logoip.de' 13 13 {{/code}} 14 14 15 -**3.** (% style="color:#3498db" %)**[ldhost]**(%%) prun ausführen zum Übertragen der Zertifikate 20 +**3.** (% style="color:#3498db" %)**[im ldhost]**(%%) prun ausführen zum Übertragen der Zertifikate 16 16 17 -**4.** (% style="color:#3498db" %)**[logosrv]**(%%) Konfigurationsdatei des FreeRADIUS-Dienst bearbeiten und darin die Let's Encrypt Zertifikate verknüpfen (einmalige Anpassung, muss manuell vorgenommen werden) 22 +**4.** (% style="color:#3498db" %)**[im logosrv]**(%%) Konfigurationsdatei des FreeRADIUS-Dienst bearbeiten und darin die Let's Encrypt Zertifikate verknüpfen (einmalige Anpassung, muss manuell vorgenommen werden) 18 18 19 19 In der vorhandenen Config-Datei /etc/freeradius/eap.conf die entsprechenden drei Parameter anpassen (rot markierte Zeilen) 20 20 21 -(% style="font-family:Courier New,Courier,monospace" %)tls {(%%) 22 -(% style="color:#e74c3c; font-family:Courier New,Courier,monospace" %) private_key_file = ${certdir}/wlan.ShortName.logoip.de.key (% style="color:#27ae60; font-family:Courier New,Courier,monospace" %)#ShortName entsprechend anpassen(%%) 23 -(% style="color:#e74c3c; font-family:Courier New,Courier,monospace" %) certificate_file = ${certdir}/wlan.ShortName.logoip.de.crt (% style="color:#27ae60; font-family:Courier New,Courier,monospace" %)#ShortName entsprechend anpassen(%%) 24 -(% style="color:#27ae60; font-family:Courier New,Courier,monospace" %) # If CA_file (below) is not used, then the certificate_file below 26 +(% class="box" %) 27 +((( 28 +##tls { 29 +(% style="color:#e74c3c" %) private_key_file = ${certdir}/wlan.ShortName.logoip.de.key (% style="color:#27ae60" %)# ShortName entsprechend anpassen(%%) 30 +(% style="color:#e74c3c" %) certificate_file = ${certdir}/wlan.ShortName.logoip.de.crt (% style="color:#27ae60" %)# ShortName entsprechend anpassen(%%) 31 +(% style="color:#27ae60" %) # If CA_file (below) is not used, then the certificate_file below 25 25 # MUST include not only the server certificate, but ALSO all of 26 26 # the CA certificates used to sign the server certificate.(%%) 27 -(% style="color:#e74c3c; font-family:Courier New,Courier,monospace" %) #CA_file = ${cadir}/ca.pem (% style="color:#27ae60; font-family:Courier New,Courier,monospace" %)#Zeile auskommentieren(% style="font-family:Courier New,Courier,monospace" %) 28 -} 34 +(% style="color:#e74c3c" %) #CA_file = ${cadir}/ca.pem (% style="color:#27ae60" %)# diese Zeile auskommentieren(%%) 35 +}## 36 +))) 29 29 38 +Danach den FreeRADIUS-Dienst mit dem Kommando {{box}}/etc/init.d/freeradius restart{{/box}} neustarten. 30 30 31 -Danach den FreeRADIUS-Dienst mit dem Kommando /etc/init.d/freeradius restart neustarten. 40 + 41 +---- 42 + 43 + 44 +==== __Kompatibilität mit Android-Geräten steigern__ ==== 45 + 46 + 47 +Zur Steigerung der Kompatibilität mit Android 11 / 12 Geräten kann man ein Let's Encrypt Zertifikat per acme.sh Tool beantragen, welches nicht durch zwei Zertifizierungsstellen "cross-signed" wurde. 48 + 49 +Dafür muss das Zertifikat mit besonderen Optionen beantragt werden. Hierfür zunächst wie üblich zum LXC-Container (% style="color:#3498db" %)**puppeteer**(%%) verbinden und über den Befehl {{box}}sle{{/box}} zum Benutzer (% style="color:#27ae60" %)**le-acme**(%%) wechseln. Jetzt jedoch nicht auf das bekannte Kommando {{box}}issue [domain]{{/box}} für die Beantragung zurückgreifen, sondern stattdessen folgende beiden Kommandos verwenden (entscheidend sind die beiden Optionen in der letzten Zeile): 50 + 51 +{{code language="bash"}} 52 +DOMAIN=wlan.ShortName.logoip.de # ShortName entsprechend anpassen 53 + 54 +acme.sh --issue -d "$DOMAIN" -w "/var/www" --fullchain-file "/data/le/certs/$DOMAIN.crt" \ 55 + --key-file "/data/le/certs/$DOMAIN.key" --post-hook "/usr/share/acme.sh/fix-perm" --renew-hook "/usr/share/acme.sh/fix-perm" \ 56 + --preferred-chain "ISRG Root X1" --force 57 +{{/code}} 58 + 59 + 60 + 61 +Nachfolgend ein Vergleich des Zertifikats mit der speziell selektierten Zertifizierungsstelle "ISRG Root X1" im Vergleich zum gewöhnlichen Let's Encrypt Zertifikat. 62 + 63 +* Das neue LE-Zertifikat (oberer Teil der Abbildung, (% style="color:#3498db" %)//**Path #1**//(%%)) würde von einem Android-Gerät akzeptiert werden. 64 +* Das Standard LE-Zertifikat (unterer Teil der Abbildung, (% style="color:#3498db" %)//**Path #2**//(%%)) entspricht der ursprünglichen Variante, ohne Anpassung (und gemäß des CA-Datums nicht mehr gültig). 65 + 66 +[[image:image-20220506141124-1.png||class="img-thumbnail"]] 67 + 68 + 69 + 70 +(% class="box successmessage" %) 71 +((( 72 +**INFO: **Die Einstellung der präferierten Zertifizierungsstelle "ISRG Root X1" wird für dieses Zertifikat bei Verlängerungen auf Domainebene beibehalten. Die Option "Preferred-Chain" wird hierzu im Config-File des Zertfikats vom acme.sh Tool eingespeichert. 73 +))) 74 + 75 +{{code language="bash"}} 76 +root@ldhost:~ $ ssh puppeteer 77 +root@puppeteer:~ $ cat /data/le/acme.sh/certs/wlan.ShortName.logoip.de/wlan.ShortName.logoip.de.conf 78 + 79 +#[...] 80 +Le_Preferred_Chain='__ACME_BASE64__START_SVNSRyBSb290IFgx__ACME_BASE64__END_' 81 + 82 +# Hinweis: der eingespeicherte Base64-kodierte Wert entspricht hier "ISRG Root X1" 83 +root@puppeteer:~ $ echo -n "ISRG Root X1" | base64 84 +SVNSRyBSb290IFgx 85 +{{/code}} 86 + 87 + 88 +Ab Version 3.0.1 des Tools **acme.sh** kann die bevorzugte Zertifizierungsstelle auch als feste Voreinstellung eingespeichert werden. Dazu im Kontext des Benutzers (% style="color:#27ae60" %)**le-acme**(%%) folgende Konfigurationsdatei anpassen: 89 + 90 +{{code language="bash"}} 91 +root@ldhost:~ $ ssh puppeteer 92 +root@puppeteer:~ $ sle 93 +le-acme@puppeteer:~ $ vim ~/config/ca/acme-v02.api.letsencrypt.org/directory/ca.conf 94 + 95 +# Folgende Zeile in zur Konfigurationsdatei hinzufügen zur Verwendung der CA "ISRG Root X1" für alle künftigen Let's Encrypt Zertifikate 96 +DEFAULT_PREFERRED_CHAIN='ISRG Root X1' 97 +{{/code}}