User Tools

Site Tools


smartcard:etoken

This is an old revision of the document!


Nutzung eines SafeNet eToken PRO unter Linux

Installation von Paketen unter Debian/GNU Linux 9 (stretch)

# aptitude install opensc-pkcs11 libpkcs11 libengine-pkcs11-openssl \
libengine-pkcs11-openssl1.1 gnupg-pkcs11-scd

Initialisierung des Tokens

$ pkcs11-tool --module /usr/lib/libeToken.so --init-token --label <Etikett>

Erzeugen eines Schlüssels

$ pkcs11-tool --module /usr/lib/libeToken.so \
  -l -k --key-type RSA:1024 -d 1 -a "<Etikett>"

Zertifikatsanfrage erstellen, signieren und in das benötigte DER-Format konvertieren. Als Vorarbeit muss der Pfad zur Bibliothek der zur OpenSSL-Version passenden PKCS#11-Engine gefunden werden.

$ openssl version
OpenSSL 1.1.0f  25 May 2017
$ find /usr/ -iname "*pkcs11.so"
/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/libpkcs11.so
/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/onepin-opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/onepin-opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so
/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libj2pkcs11.so
/usr/lib/libeTPkcs11.so
$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so \
  -pre ID:pkcs11 -pre LIST_ADD:<Schlüssel ID> -pre LOAD -pre MODULE_PATH:libeToken.so
OpenSSL> req -engine pkcs11 -new -key 1 -keyform engine -x509 -out <Dateiname>.pem -text
OpenSSL> x509 -in <Dateiname>.pem -out <Dateiname>.der -outform der

Schließlich können wir dieses Zertifikat in den eToken schreiben. Achtung: Korrekte ID (-d) und Label (-a) verwenden.

pkcs11-tool --module /usr/lib/libeToken.so -l -w <Dateiname>.der -y cert -d <Schlüssel ID> -a "<Etikett>"
smartcard/etoken.1508510708.txt.gz · Last modified: 2017/10/20 14:45 by Martin