PKCS#11-URL-Generierung#

Verschiedene Anwendungen verwenden openssl, um z. B. TLS-Zertifikate zu handhaben. Dieses Konzept erlaubt es meist, einfach einen Dateipfad (für das Geheimnis) durch eine sogenannte PKCS#11-URL zu ersetzen, um ein Geheimnis aus einem z. B. Nitrokey zu verwenden.

Vorbereitung#

  • sicherstellen, dass openssl installiert ist

  • stellen Sie sicher, daß openssl die PKCS#11-Engine benutzen kann, indem Sie libengine-pkcs11-openssl installieren

  • Installieren Sie opensc und gnutls-bin für notwendige Werkzeuge

  • Überprüfen Sie mit pkcs15-tool -D, ob die benötigten Schlüssel und/oder Zertifikate auf Ihrem Nitrokey vorhanden sind

  • wenn Sie ECC-Schlüssel/-Mechanismen durch libengine-pkcs11-openssl verwenden wollen, müssen Sie sicherstellen, dass dessen Version mindestens 0.4.10 ist

Auflisten und Erzeugen von PKCS#11-URLs#

Verwenden Sie den folgenden Befehl, um eine Liste der verfügbaren Token (Nitrokeys) zu erhalten:

p11tool --list-tokens

Wählen Sie die Token-(Nitrokey-)URL, für die Sie URL-Token generieren möchten, und verwenden Sie sie wie folgt:

p11tool --list-all <token-url>

# example:
# p11tool --list-all "pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0123123;token=UserPIN%20%28SmartCard-HSM%29"

Wenn Sie den hinteren Teil der URL inspizieren, werden Sie erkennen: label, id und mehr, diese können teilweise entfernt werden, solange die notwendigen Objekte über die resultierende URL eindeutig identifiziert werden können, siehe TLS Apache2 Configuration für ein Beispiel, das nur id verwendet.