OpenSSL#
Įspėjimas
Bandant gauti privatųjį raktą, „OpenSSL“ sugenda. Tai normalu, nes privačių raktų negalima išgauti iš NetHSM. Vietoj to galite norėti išgauti viešąjį raktą (žr. pavyzdį toliau).
Variklis#
Įspėjimas
Kai naudojama variklio (libp11) versija 0.4.12 arba senesnė, jei NetHSM turi EdDSA raktą, „OpenSSL“ neranda jokio rakto. Naudojant 0.4.12 ir senesnes versijas, varikliukas pateikia visų NetHSM esančių raktų sąrašą, kai prašoma rakto. Ieškant rakto pagal etiketę arba id, rekomenduojama naudoti 0.4.13 ar naujesnę versiją arba surinkti libp11 iš pirminio šaltinio. Variklio dvejetainė sąranka bus src/.libs/pkcs11.so
.
„OpenSSL“ variklio sąsaja yra senasis būdas įdiegti pasirinktinius „OpenSSL“ galinius įrenginius, ir jis yra panaikintas „OpenSSL 3“. Tai vis dar yra stabiliausias būdas naudoti NetHSM su „OpenSSL“.
Turėsite nustatyti PKCS#11 modulį, vadovaudamiesi šiomis instrukcijomis.
Sumontuokite variklį:
apt install libengine-pkcs11-openssl
dnf install openssl-pkcs11
pacman -S libp11
Tada reikia sukonfigūruoti „OpenSSL“, kad ji naudotų variklį. Tai atliekama į openssl.cnf
failą įrašius šias eilutes:
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
Pastaba
OpenSSL konfigūracijos failo kelią galite nurodyti naudodami OPENSSL_CONF
aplinkos kintamąjį.
Įspėjimas
Jei pagrindinis „OpenSSL“ konfigūracijos failas būtų pakeistas taip, kad jame būtų tik šios eilutės, tai galėtų pažeisti kitas „OpenSSL“ naudojančias programas. Todėl galite norėti sukurti atskirą variklio konfigūracijos failą.
Pakeiskite /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
keliu į anksčiau įdiegtą PKCS#11 modulį.
Pakeiskite /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
į kelią iki įdiegto OpenSSL variklio. Kelias skiriasi priklausomai nuo jūsų distribucijos. Skaičius engines-3
atitinka jūsų OpenSSL versiją. Debian“ sistemoje „OpenSSL 3“ variklio kelias yra /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
; „Fedora“ sistemoje - /usr/lib64/engines-3/libpkcs11.so
.
Dabar galite naudoti raktus NetHSM, naudodami PKCS#11 URI, pvz:
engine:pkcs11:pkcs11:object=webserver;type=private
Bus naudojamas raktas webserver
.
Pastaba
Galite naudoti p11tool
komandą iš GnuTLS <https://gnutls.org/> gauti visą raktų URI:
p11tool --provider /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so --list-all
Komandos pavyzdys#
Gauti asimetrinių raktų poros viešąjį raktą iš NetHSM :
openssl pkey -engine pkcs11 -inform ENGINE -in "pkcs11:object=webserver;type=public" -pubout
Teikėjas#
„OpenSSL“ teikėjo sąsaja - tai naujas būdas įdiegti pasirinktinius „OpenSSL“ galinius serverius. ` pkcs11-provider backend <https://github.com/latchset/pkcs11-provider>`__ vis dar yra ankstyvojoje kūrimo stadijoje.
Turėsite nustatyti PKCS#11 modulį, vadovaudamiesi šiomis instrukcijomis.
Įdiekite paslaugų teikėją. Fedora sistemai yra paketas, pavadintas pkcs11-provider
. Kitoms „Linux“ distribucijoms jį reikės susikurti iš pradinio šaltinio.
Tada reikia sukonfigūruoti „OpenSSL“, kad ji naudotų teikėją. Tai atliekama į openssl.cnf
failą įrašant šias eilutes:
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
Nustatykite module
kaip įdiegto teikėjo kelią, o pkcs11-module-path
kaip įdiegto PKCS#11 modulio kelią.
Jei norite nustatyti NetHSM kaip numatytąjį teikėją, galite pridėti default = pkcs11
prie provider_sect
skirsnio.
Pastaba
OpenSSL konfigūracijos failo kelią galite nurodyti naudodami OPENSSL_CONF
aplinkos kintamąjį.
Įspėjimas
Jei pagrindinis „OpenSSL“ konfigūracijos failas būtų pakeistas taip, kad jame būtų tik šios eilutės, tai galėtų pažeisti kitas „OpenSSL“ naudojančias programas. Todėl galite norėti sukurti atskirą teikėjo konfigūracijos failą.
Tada galite naudoti raktus NetHSM naudodami PKCS#11 URI, pvz:
openssl pkey -provider pkcs11 -in "pkcs11:object=rsakey" -pubout
Jei nustatėte NetHSM kaip numatytąjį teikėją, galite praleisti -provider pkcs11
argumentą.
Pastaba
Šiuo metu rankiniu būdu nustatant rakto tipą URI, teikėjas negalės rasti rakto. Galite praleisti ;type=private
arba ;type=public
URI dalį, kad tai veiktų.