Mit der Authentifizierungsfunktion für Clientgerätezertifikate können Sie die Zertifikatauthentifizierung für Clientsysteme für Horizon Client für Linux einrichten. Unified Access Gateway authentifiziert die Clientsysteme. Die SoftHSM2-Bibliothek verwaltet die Verteilung und Bereitstellung von Zertifikaten auf dem Clientsystem. Nach erfolgreicher Geräteauthentifizierung muss der Benutzer immer noch die Benutzerauthentifizierung durchführen.
Voraussetzungen
Für diese Funktion gelten die folgenden Anforderungen.
- Unified Access Gateway 2.6 oder höher
- Das Clientsystem ist mit einem Stamm-CA-Zertifikat ausgestattet, das Unified Access Gateway akzeptiert
Weitere Informationen zum Konfigurieren von Unified Access Gateway finden Sie in der Dokumentation zu Unified Access Gateway.
Einrichten des Linux-Clientsystems für die Gerätezertifikatauthentifizierung
Um die Authentifizierung von Gerätezertifikaten einzurichten, müssen Sie diese allgemeinen Aufgaben ausführen:
- Installieren Sie die SoftHSM2-Bibliothek auf dem Clientsystem.
- Erstellen Sie ein kryptografisches Token für die SoftHSM2-Bibliothek.
- Bereiten Sie das Gerätezertifikat sowie öffentliche und private Schlüssel vor.
- Importieren Sie die Zertifikats- und Schlüsseldatei in die SoftHSM2-Datenbank.
- Konfigurieren Sie die SoftHSM2-Bibliothek zur Verwendung durch Horizon Client.
Das folgende Verfahren enthält Leitlinien für den Abschluss des Setups auf einem allgemeinen Linux-Clientsystem. Bestimmte Schritte können je nach Linux-Distribution variieren.
- Installieren Sie die SoftHSM2-Bibliothek auf dem Linux-Clientsystem mithilfe einer der folgenden Methoden.
- Methode 1: Verwenden Sie Paketverwaltungstools.
Auf einem Ubuntu-System können Sie beispielsweise folgenden Befehl ausführen.
sudo apt-get install softhsm2
- Methode 2: Kompilieren und installieren Sie die SoftHSM2-Bibliothek manuell.
- Klonen Sie das SoftHSM2-Quellcode-Repository auf das System.
git clone https://github.com/opendnssec/SoftHSMv2.git
- Kompilieren, konfigurieren und installieren Sie die SoftHSM2-Bibliothek aus dem geklonten Quellcode.
Hinweis: Horizon Client installiert seine eigene OpenSSL-Bibliothek und nutzt auch die OpenSSL-Bibliothek, die mit SoftHSM2 verknüpft ist. Um Konflikte während der Laufzeit zu vermeiden, stellen Sie sicher, dass Sie SoftHSM2 mit derselben OpenSSL-Bibliothek verknüpfen, die vom Horizon Client installiert wurde.
Im folgenden Befehlsbeispiel sollte der <Pfad zur OpenSSL-Bibliothek> den Pfad „include“ und „lib“ enthalten.
cd SoftHSMv2/ sh autogen.sh ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library> make sudo make install
- Klonen Sie das SoftHSM2-Quellcode-Repository auf das System.
- Methode 1: Verwenden Sie Paketverwaltungstools.
- Erstellen Sie ein kryptografisches Token für die SoftHSM2-Bibliothek.
Standardmäßig verfügt SoftHSM2 über einen Token-Steckplatz. Wenn Sie ein Token im ersten Steckplatz initialisieren, wird automatisch ein zweiter Steckplatz hinzugefügt. Nachfolgende Steckplätze werden hinzugefügt, wenn Sie ein neues Token in jedem Steckplatz initialisieren.
- Führen Sie den Befehl aus, um das Token zu erstellen.
softhsm2-util --init-token --slot 0 --label "<your token label>"
- Notieren Sie sich die Steckplatz-ID, die vom Tokenerstellungsbefehl zurückgegeben wird. Sie benötigen diese Steckplatz-ID später, wenn Sie X.509-Gerätezertifikat und Schlüsseldateien in die SoftHSM2-Datenbank importieren.
- Führen Sie den Befehl aus, um das Token zu erstellen.
- Bereiten Sie das X.509-Gerätezertifikat sowie öffentliche und private Schlüssel vor.
- Holen Sie sich das Gerätezertifikat im PFX-Format, das den Privatschlüssel enthält.
- Konvertieren Sie die PFX-Datei in eine Schlüsseldatei im PEM-Format. Beispielsweise wandelt der folgende Befehl client.pfx in client-keys.pem um.
openssl pkcs12 -in client.pfx -nocerts -nodes -out client-keys.pem
- Konvertieren Sie die PEM-Schlüsseldatei in eine PKCS8-Schlüsseldatei.
openssl pkcs8 -in client-keys.pem -topk8 -nocrypt -out client-keys.pk8
- Konvertieren Sie die PFX-Datei in ein X.509-Zertifikat im DER-Format.
openssl pkcs12 -in client.pfx -nokeys -nodes -out client-cert.pem openssl x509 -outform der -in client-cert.pem -out client-cert.der
- Importieren Sie das X.509-Zertifikat und die Schlüsseldatei in die SoftHSM2-Datenbank.
- Importieren Sie die Schlüsseldatei in die SoftHSM2-Datenbank.
Beispielsweise importiert der folgende Befehl die client-key.pk8-Datei. Ersetzen Sie <Ihr Token-Etikett> und <Steckplatz-ID> durch die Werte, die Sie in Schritt 2 erhalten haben.
softhsm2-util --import client-key.pk8 --token "<your token label>" --slot <slot ID> --label "client" --id 0001
- Importieren Sie das X.509-Zertifikat in die SoftHSM2-Datenbank.
Beispielsweise importiert der folgende Befehl dieclient-cert.der-Datei. Ersetzen Sie <softhsm2-pin> durch die PIN, die für den Zugriff auf die SoftHSM2-Datenbank erforderlich ist.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --write-object client-cert.der --type cert --id 0001
- Vergewissern Sie sich, dass das X.509-Zertifikat, der öffentliche Schlüssel und der private Schlüssel alle in der SoftHSM2-Datenbank gespeichert sind.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --token-label "<your token label>" --list-objects
- Importieren Sie die Schlüsseldatei in die SoftHSM2-Datenbank.
- Konfigurieren Sie die SoftHSM2-Bibliothek zur Verwendung durch Horizon Client.
sudo mkdir /usr/lib/vmware/view/pkcs11 sudo ln -s /usr/local/lib/softhsm/libsofthsm2.so /usr/lib/vmware/view/pkcs11/libsofhsm2.so
Unterstützung für den FIPS-Compliance-Modus
Wenn Sie die Authentifizierung von Gerätezertifikaten in einer Umgebung verwenden möchten, die dem Federal Information Processing Standard (FIPS) entspricht, führen Sie zunächst die unter Aktivieren des FIPS-kompatiblen Modus beschriebenen Schritte aus. Führen Sie dann den im vorherigen Abschnitt, Einrichten des Linux-Clientsystems für die Gerätezertifikatauthentifizierung, beschriebenen Setup-Vorgang mit der folgenden Änderung aus.
cd SoftHSMv2/ sh autogen.sh ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library> --enable-fips make sudo make install