OpenSSL#
Figyelem
Ha megpróbálja lekérni a privát kulcsot, az OpenSSL összeomlik. Ez normális, mivel a privát kulcsok nem nyerhetők ki a NetHSM-ből. Helyette a nyilvános kulcsot érdemes lekérdezni (lásd az alábbi példát).
Motor#
Figyelem
Ha a motor (libp11) 0.4.12-es vagy régebbi verzióját használjuk, akkor a NetHSM-en lévő EdDSA kulcs miatt az OpenSSL nem talál semmilyen kulcsot. A 0.4.12-es és régebbi verzióknál a motor a NetHSM-en lévő összes kulcsot felsorolja, amikor kulcsot kérnek. Ha kulcsot keresünk címke vagy azonosító alapján, ajánlott a 0.4.13-as vagy újabb verziót használni, vagy a libp11 forrásból való buildelését. A motor bináris állománya a src/.libs/pkcs11.so
könyvtárban lesz.
Az OpenSSL motor interfész a régi módja az OpenSSL egyéni háttértárjainak megvalósítására, és az OpenSSL 3-ban elavulttá vált. Ez még mindig a legstabilabb módja a NetHSM használatának az OpenSSL-lel.
Be kell állítania a PKCS#11 modult, követve a ezeket az utasításokat.
Szerelje be a motort:
apt install libengine-pkcs11-openssl
dnf install openssl-pkcs11
pacman -S libp11
Ezután az OpenSSL-t úgy kell konfigurálni, hogy használja a motort. Ezt a következő sorok hozzáadásával teheti meg a openssl.cnf
fájlban:
openssl_conf = openssl_init
[openssl_init]
engines = engine_section
[engine_section]
pkcs11 = pkcs11_section
[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
MODULE_PATH = /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
init = 0
Megjegyzés
Az OpenSSL számára az OpenSSL konfigurációs fájl elérési útvonalát a OPENSSL_CONF
környezeti változóval adhatja meg.
Figyelem
Ha az OpenSSL fő konfigurációs fájlját úgy módosítják, hogy csak ezeket a sorokat tartalmazza, akkor ez megszakíthatja az OpenSSL-t használó más programokat. Ezért érdemes egy külön konfigurációs fájlt létrehozni a motor számára.
A /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
helyett a korábban telepített PKCS#11 modul elérési útvonalát adja meg.
A /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
helyett a telepített OpenSSL motor elérési útvonalát kell beírni. Az útvonal a disztribúciótól függően változik. A engines-3
szám az OpenSSL verziójának felel meg. Debian esetén az OpenSSL 3 motor elérési útvonala /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
; Fedora esetén /usr/lib64/engines-3/libpkcs11.so
.
Most már használhatja a kulcsokat a NetHSM-en a PKCS#11 URI-k használatával, példa:
engine:pkcs11:pkcs11:object=webserver;type=private
Ez a webserver
kulcsot fogja használni.
Megjegyzés
A p11tool
parancsot használhatja a GnuTLS <https://gnutls.org/> parancsból, hogy megkapja a kulcsok teljes URI-ját:
p11tool --provider /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so --list-all
Példa parancs#
Egy aszimmetrikus kulcspár nyilvános kulcsának lekérdezése a NetHSM-en :
openssl pkey -engine pkcs11 -inform ENGINE -in "pkcs11:object=webserver;type=public" -pubout
Szolgáltató#
Az OpenSSL szolgáltatói interfész az új módja az OpenSSL egyéni háttértárak megvalósításának. A pkcs11-provider backend még a fejlesztés korai szakaszában van.
Be kell állítania a PKCS#11 modult, követve a ezeket az utasításokat.
Telepítse a szolgáltatót. Fedora esetén létezik egy pkcs11-provider
nevű csomag. Más Linux disztribúciókhoz a forrásból kell.
Ezután konfigurálnia kell az OpenSSL-t a szolgáltató használatára. Ehhez a következő sorokat kell hozzáadni a openssl.cnf
fájlhoz:
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
pkcs11 = pkcs11_sect
[pkcs11_sect]
module = /home/sautax/git/pkcs11-provider/src/.libs/pkcs11.so
pkcs11-module-path = /usr/lib/libnethsm_pkcs11.so
activate = 1
Állítsa be a module
a telepített szolgáltató elérési útvonalát, a pkcs11-module-path
pedig a telepített PKCS#11 modul elérési útvonalát.
Ha a NetHSM-et szeretné alapértelmezett szolgáltatónak beállítani, akkor a default = pkcs11
a provider_sect
szakaszhoz adhatja hozzá a ` ` címet.
Megjegyzés
Az OpenSSL számára az OpenSSL konfigurációs fájl elérési útvonalát a OPENSSL_CONF
környezeti változóval adhatja meg.
Figyelem
Ha az OpenSSL fő konfigurációs fájlját úgy módosítják, hogy csak ezeket a sorokat tartalmazza, akkor ez megszakíthatja az OpenSSL-t használó más programokat. Ezért érdemes egy külön konfigurációs fájlt létrehozni a szolgáltató számára.
Ezután a kulcsokat a NetHSM-en a PKCS#11 URI-k használatával használhatja, például:
openssl pkey -provider pkcs11 -in "pkcs11:object=rsakey" -pubout
Ha a NetHSM-et állítja be alapértelmezett szolgáltatónak, elhagyhatja a -provider pkcs11
argumentumot.
Megjegyzés
Jelenleg, ha manuálisan állítjuk be a kulcs típusát az URI-ban, a szolgáltató nem fogja tudni megtalálni a kulcsot. A ;type=private
vagy a ;type=public
rész elhagyásával az URI-ból kihagyható, hogy működjön.