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

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ų.