Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:eduroam:easyroam [2024/11/22 14:10] – [Installation der easyroam app auf Linux Desktop Geräten mit Network Manager] Ralf Paffrathde:eduroam:easyroam [2024/12/01 11:28] (aktuell) – [Installation der eduroam Profile auf ANDROID, wenn alle Stricke reißen] Ralf Paffrath
Zeile 13: Zeile 13:
 In eduroam gibt es neben anderen Verfahren zur Anmeldung die Authentifizierungsmethode EAP-TLS. Bei dieser Methode kommen ausschließlich Client/Nutzer Zertifikate für die Anmeldung zum Einsatz. Diese Zertifikate für eduroam können die eduroam Nutzenden auf www.easyroam.de nur generieren, wenn sie im Besitz einer gültigen DFN-AAI IdP Kennung mit Opt-In sind. Die eduroam Client/Server Zertifikate sind Teil einer "Self-Signed PKI" und können nur in eduroam eingesetzt werden. Der easyroam Server speichert ausschließlich nur die Pairwise - ID (Pseudonym) des DFN-AAI IdP Accounts und die Seriennummer des Client/Nutzer Zertifikats. Letzteres ist auch Teil der Roaming Identität. Eine Besonderheit gegenüber aktuellen EAP-TLS Angeboten ist, dass die eduroam Nutzenden nicht mehr mit Namen im Zertifikat erkennbar sind. Somit ist es unmöglich Bewegungsprofile der eduroam Nutzenden zu erstellen. Jedoch ist es möglich, eine Zuordnung zwischen Pairwise - ID und Zertifikats-Seriennummer herzustellen und den eduroam Nutzenden eindeutig mit einer Person in Verbindung zu bringen. Somit ist man nicht generell anonym in eduroam unterwegs, wie das auch bisher der Fall ist. In eduroam gibt es neben anderen Verfahren zur Anmeldung die Authentifizierungsmethode EAP-TLS. Bei dieser Methode kommen ausschließlich Client/Nutzer Zertifikate für die Anmeldung zum Einsatz. Diese Zertifikate für eduroam können die eduroam Nutzenden auf www.easyroam.de nur generieren, wenn sie im Besitz einer gültigen DFN-AAI IdP Kennung mit Opt-In sind. Die eduroam Client/Server Zertifikate sind Teil einer "Self-Signed PKI" und können nur in eduroam eingesetzt werden. Der easyroam Server speichert ausschließlich nur die Pairwise - ID (Pseudonym) des DFN-AAI IdP Accounts und die Seriennummer des Client/Nutzer Zertifikats. Letzteres ist auch Teil der Roaming Identität. Eine Besonderheit gegenüber aktuellen EAP-TLS Angeboten ist, dass die eduroam Nutzenden nicht mehr mit Namen im Zertifikat erkennbar sind. Somit ist es unmöglich Bewegungsprofile der eduroam Nutzenden zu erstellen. Jedoch ist es möglich, eine Zuordnung zwischen Pairwise - ID und Zertifikats-Seriennummer herzustellen und den eduroam Nutzenden eindeutig mit einer Person in Verbindung zu bringen. Somit ist man nicht generell anonym in eduroam unterwegs, wie das auch bisher der Fall ist.
  
-Die Server Software ist eine .NET Entwicklung in C-Sharp geschrieben. Es wurde bewusst auf PHP verzichtet, da PHP nicht die Server Sicherheit bot, die an die Server Software gelegt wurde. Der Server unterstützt aktuell drei Sprachen: Deutsch, Englisch und Chinesisch (wird zur Zeit überarbeitet)+Die Server Software ist eine .NET Entwicklung in C-Sharp geschrieben. Es wurde bewusst auf PHP verzichtet, da PHP nicht die Server Sicherheit bot, die an die Server Software gelegt wurde. Der Server unterstützt aktuell zwei Sprachen: Deutsch und Englisch
  
 Die Anleitungen auf einem Blick finden die easyroam Nutzenden [[https://doku.tid.dfn.de/de:eduroam:easyroam-anleitungen|hier]]. Die Anleitungen auf einem Blick finden die easyroam Nutzenden [[https://doku.tid.dfn.de/de:eduroam:easyroam-anleitungen|hier]].
Zeile 274: Zeile 274:
 Domain: easyroam.eduroam.de Domain: easyroam.eduroam.de
 Nutzerzertifikat auswählen: Dateinamen, den man, s. oben, beim Einlesen der PKCS12-Datei vergeben hat, auswählen, z.B. MyAndroidCert</code> Nutzerzertifikat auswählen: Dateinamen, den man, s. oben, beim Einlesen der PKCS12-Datei vergeben hat, auswählen, z.B. MyAndroidCert</code>
-<alert>ACHTUNG: Als Identität gibt man die Seriennummer des easyroam Pseudozertifikats an, gefolgt vom easyroam Realm der EIGENEN!!! Einrichtung. +<alert>ACHTUNG: Die hier aufgeführten Beispiele sind als Illustration gedacht und sollten keinesfalls unreflektiert via copy + paste übernommen werden! \\ \\ Als Identität gibt man die Seriennummer des easyroam Pseudozertifikats an, gefolgt vom easyroam Realm der EIGENEN!!! Einrichtung. 
 Beispiel: Wenn vorher der Realm anonymous@dfn.de oder anonymous@uni-greifswald.de eingegeben wurde, muss nun vor dem dfn.de oder vor uni-greifswald.de ein easyroam-pca stehen, mit Angabe der Seriennummer des Pseudozertifikats, z.B. 12345678910@easyroam-pca.dfn.de oder 12345678910@easyroam-pca.uni-greifswald.de. Die Seriennummer und der Realm, also 12345678910@easyroam-pca.dfn.de und 12345678910@easyroam-pca.uni-greifswald.de sind in der Anleitung hier nur Beispiele, bitte nicht übernehmen!!!  Beispiel: Wenn vorher der Realm anonymous@dfn.de oder anonymous@uni-greifswald.de eingegeben wurde, muss nun vor dem dfn.de oder vor uni-greifswald.de ein easyroam-pca stehen, mit Angabe der Seriennummer des Pseudozertifikats, z.B. 12345678910@easyroam-pca.dfn.de oder 12345678910@easyroam-pca.uni-greifswald.de. Die Seriennummer und der Realm, also 12345678910@easyroam-pca.dfn.de und 12345678910@easyroam-pca.uni-greifswald.de sind in der Anleitung hier nur Beispiele, bitte nicht übernehmen!!! 
 Die Identität ist in der Regel der CN (Common Name) des easyroam Pseudozertifikats. Die Übereinstimmung von Identität und CN im easyroam Pseudozertifikat wird vom RADIUS Server geprüft. Ohne korrekte Eingabe der Identität ist keine Anmeldung in eduroam via easyroam möglich. Die Identität ist in der Regel der CN (Common Name) des easyroam Pseudozertifikats. Die Übereinstimmung von Identität und CN im easyroam Pseudozertifikat wird vom RADIUS Server geprüft. Ohne korrekte Eingabe der Identität ist keine Anmeldung in eduroam via easyroam möglich.
Zeile 288: Zeile 288:
  
 ==== Installation der easyroam Profile auf Linux Geräten ==== ==== Installation der easyroam Profile auf Linux Geräten ====
 +=== Extrahieren der erforderlichen Zertifikate aus der easyroam PKCS12 Datei === 
 Die Nutzung von easyroam ist selbstverständlich auch auf Linux Derivaten möglich. Leider gibt es keine allgemein gültige Anleitung. Im folgenden wird beschrieben wie die einzelnen Komponenten, die bei einer manuellen Konfiguration von easyroam auf Linux Geräten benötigt werden, aus dem easyroam Portal gewonnen werden können: Die Nutzung von easyroam ist selbstverständlich auch auf Linux Derivaten möglich. Leider gibt es keine allgemein gültige Anleitung. Im folgenden wird beschrieben wie die einzelnen Komponenten, die bei einer manuellen Konfiguration von easyroam auf Linux Geräten benötigt werden, aus dem easyroam Portal gewonnen werden können:
  
Zeile 299: Zeile 299:
 4. Den Profil Namen angeben und auf Zugang generieren klicken.<alert>Bitte beachten! Der Name des Profils ist nicht der Name der PKCS12 Datei. Der Name des Profils wird für die interne Verwaltung der easyroam Profile verwendet. Der Name der heruntergeladenen PKCS12 Datei wird gebildet aus dem Datum und der Uhrzeit der Erzeugung der PKCS12 Datei mit dem Suffix .p12.</alert> 4. Den Profil Namen angeben und auf Zugang generieren klicken.<alert>Bitte beachten! Der Name des Profils ist nicht der Name der PKCS12 Datei. Der Name des Profils wird für die interne Verwaltung der easyroam Profile verwendet. Der Name der heruntergeladenen PKCS12 Datei wird gebildet aus dem Datum und der Uhrzeit der Erzeugung der PKCS12 Datei mit dem Suffix .p12.</alert>
  
-5. Um die einzelnen Komponenten wie das Client Zertifikat, der Private Key und das RootCA Zertifikat zu extrahieren wird der CLI von openssl verwendet: +5. Um die einzelnen Komponenten wie das Client Zertifikat, der Private Key und das RootCA Zertifikat zu extrahieren wird das folgende {{ :de:eduroam:easyroam_extract.sh |Script}} aufgerufenwelches auf der Grundlage des Scripts der [[https://rz.uni-greifswald.de/dienste/technische-infrastruktur/wlan-eduroam/linux/|Universität Greifswald]] angepasst wurde: 
-<alert>Bitte beachtendass Import Password der .p12 - Datei ist leer. Bei der Verwendung von openssl auf die Formulierung achtenEnter Import Password mit <Return> quittieren.</alert> +<code> 
-  * Client Zertifikat:<code>openssl pkcs12 -in my_easyroam_cert.p12 -legacy -nokeys | openssl x509 > easyroam_client_cert.pem</code> +#!/bin/bash 
-  * CN (Common Name) Extraktion: <code>openssl x509 -noout -subject -in easyroam_client_cert.pem -legacy | sed 's/.*CN = \(.*\), C.*/\1/'</code><alert>Bitte beachten, die Option -legacy muss hier und im folgenden eventuel weggelassen werden. Leider ist die Verwendung der Option OpenSSL versionsabhängig.</alert> +# This script extract all the necessary information from the easyroam PKCS12 File and put it under /etc/easyroam-certs
-  * Private Key:<alert>Bitte beachten, da die diversen Network Manager und der wpa_supplicant in der Regel nur passwortgeschützte Private Keys akzeptieren, muss bei der Extrahierung ein Passwort gesetzt werden. Bei folgendem Komando erscheint zunächst Enter Import Password, also mit <Return> quittieren, dann erscheint Enter PEM pass phrase: Hier gibt man ein neues Password ein und merkt es sich! </alert><code>openssl pkcs12 -legacy -in my_easyroam_cert.p12 -nodes -nocerts openssl rsa -aes256 -out easyroam_client_key.pem -legacy</code> +
-  * RootCA Zertifikat:<code>openssl pkcs12 -in my_easyroam_cert.p12 -legacy -cacerts -nokeys > easyroam_root_ca.pem</code> +
-  * Die .p12 auf einem Blick:<code>openssl pkcs12 -info -in my_easyroam_cert.p12 -legacy -nodes</code><alert>Mit Copy/Paste können die Zertifikats-Dateien auch zusammengebaut werden. Zu beachten ist, dass noch der Private Key mit einem Passwort versehen werden muss.</alert>+
  
-6Es finden sich in der Tat Anleitungen im Netzum EAP-TLS auf diversen Network Managern aus den angegebenen Komponenten zu konfigurierenExemplarisch wird anhand des CLI netctl auf Archlinux gezeigt wie EAP-TLS und damit easyroam/eduroam auf einem Linux Gerät konfiguriert werden kann. Folgendes wird vorausgesetzt:+# Usage:   bash easyroam_extract.sh <YOUR-PKCS12-File> 
 +set -e 
 + 
 +# check if we are root 
 + 
 +if [[ $EUID -ne 0 ]]; then 
 +    echo "You must be root to run easyroam_extract.sh." 1>&
 +    exit 100 
 +fi 
 + 
 + 
 +ConfDir="/etc/easyroam-certs" 
 + 
 +[ -d "$ConfDir" ] || mkdir -p "$ConfDir" 
 + 
 +# check input file 
 + 
 +if [ -z "$1" ]; then 
 +        echo "" 
 +        echo "Your pkcs12 file is missed as input parameter." 
 +        echo "" 
 +        exit 1 
 +else 
 +        InputFile="$1" 
 +fi 
 +# set openssl legacy options if necessary 
 + 
 +LegacyOption= 
 +OpenSSLversion=$(openssl version | awk '{print $2}' | sed -e 's/\..*$//'
 +if [ "$OpenSSLversion" -eq "3" ]; then 
 +        LegacyOption="-legacy" 
 +fi 
 + 
 +# check pkcs12 file 
 + 
 +Pwd="pkcs12" 
 + 
 +if ! openssl pkcs12 -in "$InputFile" $LegacyOption -info -passin pass: -passout pass:"$Pwd" > /dev/null 2>&1; then 
 +        echo "" 
 +        echo "ERROR: The given input file does not seem to be a valid pkcs12 file." 
 +        echo "" 
 +        exit 1 
 +fi 
 + 
 + 
 +# extract key, certca and identity 
 + 
 +openssl pkcs12 -in "$InputFile" $LegacyOption -nokeys -passin pass: -out "$ConfDir/easyroam_client_cert.pem" 
 +openssl pkcs12 -in "$InputFile" $LegacyOption -nocerts -passin pass: -passout pass:"$Pwd" -out "$ConfDir/easyroam_client_key.pem" 
 +openssl pkcs12 -info -in "$InputFile" $LegacyOption -nokeys -passin pass: -out "$ConfDir/easyroam_root_ca.pem" > /dev/null 2>&
 +openssl x509 -noout -in "$ConfDir/easyroam_client_cert.pem" -subject | awk -F \, '{print $1}' | sed -e 's/.*=//' -e 's/\s*//' >  "$ConfDir/identity" 
 +echo "Done." 
 +</code> 
 +=== Verwendung der extrahierten easyroam Profile am Beispiel des Netzwerk Managers mit der Bezeichnung netctl === 
 + Folgendes wird vorausgesetzt: 
 +  * easyroam_extract.sh aufgerufen
   * netctl   * netctl
   * wpa_supplicant   * wpa_supplicant
   * easyroam .p12 Pseudozertifikat   * easyroam .p12 Pseudozertifikat
-Die in Schritt 5. generierten Dateien (easyroam_client_cert.pem, easyroam_client_key.pem, easyroam_root_ca.pem) unter /etc/netctl/cert ablegen und anschließend ein File mit dem Namen easyroam erzeugen, dort wird folgendes hineingeschrieben und gespeichert:<code>description='easyroam connection'+Die in Schritt 5. extrahierten Dateien die sich unter /etc/easyroam-certs befinden, werden anschließend in einem File mit dem Namen /etc/netctl/easyroam verwendet, dort wird folgendes hineingeschrieben und gespeichert:<code>description='easyroam connection'
 Interface=wlan0 Interface=wlan0
 Connection=wireless Connection=wireless
Zeile 321: Zeile 373:
     'eap=TLS'     'eap=TLS'
     'proto=WPA RSN'     'proto=WPA RSN'
-    'identity="76673789883214453797@easyroam.realm_der_einrichtung.tld"'   # Hier muss der CN (Common Name) aus dem easyroam Pseudozertifikat stehen, siehe oben. Auf keinen Fall die Pairwise-ID eingeben!!!!! +    'identity="76673789883214453797@easyroam.realm_der_einrichtung.tld"'   # <---- Hier muss der CN (Common Name), also der Wert aus der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!! 
-    'client_cert="/etc/netctl/cert/easyroam_client_cert.pem"' +    'client_cert="/etc/easyroam-certs/easyroam_client_cert.pem"' 
-    'private_key="/etc/netctl/cert/easyroam_client_key.pem"'+    'private_key="/etc/easyroam-certs/easyroam_client_key.pem"'
     'altsubject_match="DNS:easyroam.eduroam.de"'     'altsubject_match="DNS:easyroam.eduroam.de"'
-    'private_key_passwd="FORYOUREYSEONLY"' +    'private_key_passwd="pkcs12"' 
-    'ca_cert="/etc/netctl/cert/easyroam_root_ca.pem"' +    'ca_cert="/etc/easyroam-certs/easyroam_root_ca.pem"' 
-    'ca_cert2="/etc/netctl/cert/easyroam_root_ca.pem"'+    'ca_cert2="/etc/easyroam-certs/easyroam_root_ca.pem"'
 ) </code> ) </code>
 Mit Root Rechten wird folgendes Kommando aufgerufen:<code>netctl start easyroam </code>Soll permanent easyroam installiert werden, so wird folgendes Kommando aufgerufen:<code>netctl enable easyroam</code> Mit Root Rechten wird folgendes Kommando aufgerufen:<code>netctl start easyroam </code>Soll permanent easyroam installiert werden, so wird folgendes Kommando aufgerufen:<code>netctl enable easyroam</code>
 +
 +=== Verwendung der extrahierten easyroam Profile am Beispiel des Netzwerk Managers mit der Bezeichnung NetworkManager (nmcli) ===
 +
 +Nachdem die Schritte 1. bis 5. ausgeführt und die easyroam Zertifikate extrahiert wurden, wird folgendes Script aufgerufen, welches auf der Grundlage des {{ :de:eduroam:easyroam_nmcli.sh |Script}} der [[https://rz.uni-greifswald.de/dienste/technische-infrastruktur/wlan-eduroam/linux/|Universität Greifswald]] angepasst wurde:
 +<code>
 +#!/bin/bash
 +
 +# Usage: bash   easyroam_nmcli.sh
 +
 +set -e
 +
 +# check if we are root
 +
 +if [[ $EUID -ne 0 ]]; then
 +    echo "You must be root to run easyroam_nmcli.sh." 1>&2
 +    exit 100
 +fi
 +
 +# check for easyroam-cert files
 +
 +[ -d /etc/easyroam-certs ] && ConfDir=/etc/easyroam-certs || { echo "Aborted, run easyroam_extract.sh first!"; exit 1;  }
 +[ -f /etc/easyroam-certs/easyroam_client_cert.pem ] ||  { echo "Aborted, client_cert missing."; exit 1;  }
 +[ -f /etc/easyroam-certs/easyroam_root_ca.pem ] ||  { echo "Aborted, root_ca missing."; exit 1;  }
 +[ -f /etc/easyroam-certs/easyroam_client_key.pem ] ||  { echo "Aborted, client_key missing."; exit 1;  }
 +[ -f /etc/easyroam-certs/identity ] && Identity=$(cat "$ConfDir/identity") ||  { echo "Aborted, identity missing"; exit 1;  }
 +
 +Pwd="pkcs12"
 +# check for nmcli
 +
 +if ! type nmcli >/dev/null 2>&1; then
 +        echo ""
 +        echo "ERROR: nmcli not found!" >&2
 +        echo "This wizard assumes that your network connections are NOT managed by NetworkManager." >&2
 +        echo ""
 +        exit 1
 +fi
 +
 +# check for wifi device
 +
 +if ! nmcli -g TYPE,DEVICE device | grep wifi >/dev/null; then
 +        echo ""
 +        echo "ERROR: Unable to find any wifi device!" >&2
 +        echo ""
 +        exit 1
 +fi
 +
 +
 +# configure parameters
 +
 +WIntName=$(iw dev | awk '$1=="Interface"{print $2}')
 +
 +WOn="GENERAL.STATE:"
 +
 +WLANName="eduroam"
 +
 +ALT_SUBJECT="DNS:easyroam.eduroam.de"
 +
 +# TLS_1.3
 +TLS_VERSION="0x100"
 +
 +# Remove existing connections
 +
 +nmcli connection show | \
 +        awk '$1==c{ print $2 }' c="$WLANName" | \
 +        xargs -rn1 nmcli connection delete uuid
 +
 +# switch wlan on
 +
 +nmcli dev show "$WIntName" | \
 +      awk '$1==c{ print $2 }' c="$WOn" | \
 +      xargs -rn1 nmcli radio wifi on
 +
 +# Create new connection
 +
 +nmcli connection add \
 +        type wifi \
 +        con-name "$WLANName" \
 +        ssid "$WLANName" \
 +        -- \
 +        wifi-sec.key-mgmt wpa-eap \
 +        802-1x.eap tls \
 +        802-1x.altsubject-matches "$ALT_SUBJECT" \
 +        802-1x.phase1-auth-flags "$TLS_VERSION" \
 +        802-1x.identity "$Identity" \
 +        802-1x.ca-cert "$ConfDir/easyroam_root_ca.pem" \
 +        802-1x.client-cert "$ConfDir/easyroam_client_cert.pem" \
 +        802-1x.private-key-password "$Pwd" \
 +        802-1x.private-key "$ConfDir/easyroam_client_key.pem"
 + </code>    
 +<alert>Im File /etc/NetworkManager/NetworkManager.conf kann mit \\
 +\\
 +[device]\\
 +wifi.scan-rand-mac-address=yes \\
 +\\
 +die Randomisierung der MAC-Adresse konfiguriert werden.</alert>
 +        
 +
 +
  
 ==== Installation der easyroam Profile auf Linux Geräten ohne Desktop Umgebung (wpa-supplicant only) ==== ==== Installation der easyroam Profile auf Linux Geräten ohne Desktop Umgebung (wpa-supplicant only) ====
Zeile 340: Zeile 490:
 Ethernetverbindung auf das Gerät gebracht.</alert> Ethernetverbindung auf das Gerät gebracht.</alert>
  
-Um die einzelnen Komponenten wie das Client Zertifikat, der Private Key und das RootCA Zertifikat zu extrahieren wird der CLI von openssl verwendet: + 
-<alert>Bitte beachtendass Import Password der .p12 - Datei ist leer. Bei der Verwendung von openssl auf die Formulierung achtenEnter Import Password mit <Return> quittierenFerner ist zu beachten, dass je nach openssl-Version die Option -legacy in den Kommandos s.u. angegeben werden muss.</alert> +Um die einzelnen Komponenten wie das Client Zertifikat, der Private Key und das RootCA Zertifikat zu extrahieren wird das folgende {{ :de:eduroam:easyroam_extract.sh |Script}} aufgerufenwelches auf der Grundlage des Scripts der [[https://rz.uni-greifswald.de/dienste/technische-infrastruktur/wlan-eduroam/linux/|Universität Greifswald]] angepasst wurde: 
-  * Client Zertifikat:<code>openssl pkcs12 -in my_easyroam_cert.p12 -nokeys | openssl x509 easyroam_client_cert.pem</code+<code> 
-  * CN (Common Name) Extraktion: <code>openssl x509 -noout -subject -in easyroam_client_cert.pem | sed 's/.*CN=\(.*\), C.*/\1/' > CN </code+#!/bin/bash 
-  * Private Key:<alert>Bitte beachten, da der wpa_supplicant in der Regel nur passwortgeschützte Private Keys akzeptieren, muss bei der Extrahierung ein Passwort gesetzt werdenBei folgendem Komando erscheint zunächst Enter Import Passwordalso mit <Return> quittierendann erscheint Enter PEM pass phraseHier gibt man ein neues Password ein und merkt es sich! </alert><code>openssl pkcs12  -in my_easyroam_cert.p12 -nodes -nocerts | openssl rsa -aes256 -out easyroam_client_key.pem</code> +# This script extract all the necessary information from the easyroam PKCS12 File and put it under /etc/easyroam-certs 
-  * RootCA Zertifikat:<code>openssl pkcs12 -in my_easyroam_cert.p12 -cacerts -nokeys > easyroam_root_ca.pem</code+ 
-  * Die .p12 auf einem Blick:<code>openssl pkcs12 -info -in my_easyroam_cert.p12 -nodes</code> +# Usage:   bash easyroam_extract.sh <YOUR-PKCS12-File> 
-  Anlegen eines Verzeichnis für die easyroam Zertifikatsumgebung:<code>sudo mkdir /etc/easyroam-certs  +set -e 
-sudo mv easyroam_client_cert.pem CN easyroam_client_key.pem easyroam_root_ca.pem /etc/easyroam-certs/. + 
-    </code> +# check if we are root 
-  Die wpa_supplicant.conf im Verzeichnis /etc/wpa_supplicant:<code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev+ 
 +if [[ $EUID -ne 0 ]]; then 
 +    echo "You must be root to run easyroam_extract.sh." 1>&2 
 +    exit 100 
 +fi 
 + 
 + 
 +ConfDir="/etc/easyroam-certs" 
 + 
 +-d "$ConfDir" ] || mkdir -p "$ConfDir" 
 + 
 +# check input file 
 + 
 +if [ -z "$1" ]; then 
 +        echo "" 
 +        echo "Your pkcs12 file is missed as input parameter.
 +        echo "" 
 +        exit 1 
 +else 
 +        InputFile="$1" 
 +fi 
 +# set openssl legacy options if necessary 
 + 
 +LegacyOption= 
 +OpenSSLversion=$(openssl version | awk '{print $2}' | sed -e 's/\..*$//'
 +if [ "$OpenSSLversion" -eq "3" ]; then 
 +        LegacyOption="-legacy" 
 +fi 
 + 
 +# check pkcs12 file 
 + 
 +Pwd="pkcs12" 
 + 
 +if ! openssl pkcs12 -in "$InputFile" $LegacyOption -info -passin pass: -passout pass:"$Pwd" > /dev/null 2>&1; then 
 +        echo "" 
 +        echo "ERRORThe given input file does not seem to be a valid pkcs12 file.
 +        echo "" 
 +        exit 1 
 +fi 
 + 
 + 
 +# extract keycertca and identity 
 + 
 +openssl pkcs12 -in "$InputFile" $LegacyOption -nokeys -passin pass: -out "$ConfDir/easyroam_client_cert.pem" 
 +openssl pkcs12 -in "$InputFile" $LegacyOption -nocerts -passin pass: -passout pass:"$Pwd" -out "$ConfDir/easyroam_client_key.pem" 
 +openssl pkcs12 -info -in "$InputFile" $LegacyOption -nokeys -passin pass: -out "$ConfDir/easyroam_root_ca.pem" > /dev/null 2>&1 
 +openssl x509 -noout -in "$ConfDir/easyroam_client_cert.pem" -subject | awk -F \, '{print $1}' | sed -e 's/.*=//-e 's/\s*//' >  "$ConfDir/identity" 
 +echo "Done." 
 +</code> 
 +Die wpa_supplicant.conf im Verzeichnis /etc/wpa_supplicant:<code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 update_config=1 update_config=1
 country=DE country=DE
Zeile 362: Zeile 561:
    pairwise=CCMP    pairwise=CCMP
    group=CCMP    group=CCMP
-   identity="12345678910111213abcd@easyroam-pca.dfn.de # <---- Hier einfach die CN Datei mit einem Editor vim oder vi einlesen+   identity="12345678910111213abcd@realm_der_einrichtung.tld  # <---- Hier muss der CN (Common Name), also der Wert aus der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!!
    altsubject_match="DNS:easyroam.eduroam.de"    altsubject_match="DNS:easyroam.eduroam.de"
    ca_cert="/etc/easyroam-certs/easyroam_root_ca.pem"    ca_cert="/etc/easyroam-certs/easyroam_root_ca.pem"
    client_cert="/etc/easyroam-certs/easyroam_client_cert.pem"    client_cert="/etc/easyroam-certs/easyroam_client_cert.pem"
    private_key="/etc/easyroam-certs/easyroam_client_key.pem"    private_key="/etc/easyroam-certs/easyroam_client_key.pem"
-   private_key_passwd="secretphrase"+   private_key_passwd="pkcs12"
 }</code> }</code>
 <code>sudo reboot</code> <code>sudo reboot</code>
  • Zuletzt geändert: vor 4 Monaten