Wiki-Quellcode von Lets Encrypt Zertifikat zum FreeRADIUS-Dienst im logosrv übertragen
Version 4.1 von Christian Germann am 2022/05/06 14:17
Verstecke letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
![]() |
1.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 | 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 | |||
5 | **1.** (% style="color:#3498db" %)**[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. | ||
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 | |||
9 | {{code language="bash"}} | ||
10 | # Transfer Let's Encrypt SSL certificate to logosrv (target dir = /etc/freeradius/certs) | ||
11 | ld_legacy::radius::ensure: true | ||
12 | ld_legacy::radius::cn: 'wlan.ShortName.logoip.de' | ||
13 | {{/code}} | ||
14 | |||
15 | **3.** (% style="color:#3498db" %)**[ldhost]**(%%) prun ausführen zum Übertragen der Zertifikate | ||
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) | ||
18 | |||
19 | In der vorhandenen Config-Datei /etc/freeradius/eap.conf die entsprechenden drei Parameter anpassen (rot markierte Zeilen) | ||
20 | |||
21 | (% style="font-family:Courier New,Courier,monospace" %)tls {(%%) | ||
![]() |
4.1 | 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(%%) | ||
![]() |
1.1 | 24 | (% style="color:#27ae60; font-family:Courier New,Courier,monospace" %) # If CA_file (below) is not used, then the certificate_file below |
25 | # MUST include not only the server certificate, but ALSO all of | ||
26 | # the CA certificates used to sign the server certificate.(%%) | ||
![]() |
4.1 | 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" %) |
![]() |
2.1 | 28 | } |
![]() |
1.1 | 29 | |
30 | |||
31 | Danach den FreeRADIUS-Dienst mit dem Kommando /etc/init.d/freeradius restart neustarten. | ||
![]() |
4.1 | 32 | |
33 | |||
34 | 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. | ||
35 | |||
36 | Daür ist folgende Anpassung im puppeteer nötig. | ||
37 | |||
38 | Ändern Sie die /usr/share/acme.sh/issue wie folgt ab. | ||
39 | |||
40 | {{code language="yaml"}} | ||
41 | #!/bin/bash | ||
42 | |||
43 | source /usr/share/acme.sh/sbe.conf | ||
44 | export PATH="${SBE_SCRIPT_DIR}:$PATH" | ||
45 | |||
46 | domain="$1" | ||
47 | if [ -z "${domain}" ]; then | ||
48 | echo "No domain specified" | ||
49 | exit 1 | ||
50 | fi | ||
51 | |||
52 | "${SBE_SCRIPT_DIR}/acme.sh" \ | ||
53 | --issue \ | ||
54 | -d "${domain}" \ | ||
55 | -w "${SBE_WEBROOT}" \ | ||
56 | --fullchain-file "${SBE_PUBLISH}/${domain}.crt" \ | ||
57 | --key-file "${SBE_PUBLISH}/${domain}.key" \ | ||
58 | --post-hook "${SBE_SCRIPT_DIR}/fix-perm" \ | ||
59 | --renew-hook "${SBE_SCRIPT_DIR}/fix-perm" \ | ||
60 | --preferred-chain "ISRG Root X1" \ | ||
61 | --force | ||
62 | {{/code}} | ||
63 | |||
64 | Danach wie gewohnt das Zertifikat über sle beantragen. | ||
65 | |||
66 | |||
67 | Hier der Unterschied zwischen den Zertifikaten. | ||
68 | |||
69 | Das neue Zertifikat (oben) würde von einem Android-Gerät akzeptiert werden. | ||
70 | |||
71 | Das untere Zertifikat entspricht der ursprünglichen Variante, ohne Anpassung. | ||
72 | |||
73 | [[image:image-20220506141124-1.png]] |