OpenSSL#

Brīdinājums

Mēģinot iegūt privāto atslēgu, OpenSSL sabojās. Tas ir normāli, jo privātās atslēgas nevar iegūt no NetHSM. Tā vietā varat iegūt publisko atslēgu (skatīt piemēru tālāk).

Dzinējs#

Brīdinājums

Izmantojot dzinēja (libp11) versiju 0.4.12 vai jaunāku, ja NetHSM ir EdDSA atslēga, OpenSSL neatrod nevienu atslēgu. Versijā 0.4.12 un vecākā versijā dzinējs pēc atslēgas pieprasīšanas uzskaita visas NetHSM esošās atslēgas. Meklējot atslēgu pēc etiķetes vai id, ieteicams izmantot 0.4.13 vai jaunāku versiju vai veidot libp11 no avota. Dzinēja binārā kopija būs src/.libs/pkcs11.so.

OpenSSL dzinēja saskarne ir vecais veids, kā ieviest pielāgotus OpenSSL backendus, un tas ir atcelts OpenSSL 3. Tas joprojām ir visstabilākais veids, kā izmantot NetHSM ar OpenSSL.

Jums būs jāiestata PKCS#11 modulis, sekojot šiem norādījumiem.

Uzstādiet dzinēju:

apt install libengine-pkcs11-openssl

Tālāk ir jākonfigurē OpenSSL, lai izmantotu dzinēju. To var izdarīt, pievienojot openssl.cnf failā šādas rindiņas:

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

Piezīme

OpenSSL konfigurācijas faila ceļu var norādīt, izmantojot OPENSSL_CONF vides mainīgo.

Brīdinājums

Ja galvenais OpenSSL konfigurācijas fails tiek pārveidots tā, lai tajā būtu tikai šīs rindiņas, tas var sabojāt citas programmas, kas izmanto OpenSSL. Tāpēc, iespējams, ir jāizveido atsevišķs konfigurācijas fails dzinējam.

Aizstājiet /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so ar iepriekš instalētā PKCS#11 moduļa ceļu.

Aizstājiet /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so ar ceļu līdz OpenSSL dzinējam, ko esat instalējis. Šis ceļš atšķiras atkarībā no jūsu izplatīšanas. Skaitlis engines-3 atbilst jūsu OpenSSL versijai. Debian sistēmā ceļš līdz OpenSSL 3 dzinējam ir /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so; Fedora sistēmā tas ir /usr/lib64/engines-3/libpkcs11.so.

Tagad jūs varat izmantot atslēgas NetHSM, izmantojot PKCS#11 URI, piemērs:

engine:pkcs11:pkcs11:object=webserver;type=private

Tiks izmantota atslēga webserver.

Piezīme

Jūs varat izmantot p11tool komandu no GnuTLS <https://gnutls.org/>, lai iegūtu pilnu atslēgu URI:

p11tool --provider /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so --list-all

Piemērs Komanda#

Asimetriskā atslēgu pāra publiskās atslēgas iegūšana NetHSM :

openssl pkey -engine pkcs11 -inform ENGINE -in "pkcs11:object=webserver;type=public" -pubout

Nodrošinātājs#

OpenSSL nodrošinātāja saskarne ir jaunais veids, kā ieviest pielāgotus OpenSSL backendus. ` pkcs11-provider backend <https://github.com/latchset/pkcs11-provider>`__ joprojām ir agrīnā izstrādes stadijā.

Jums būs jāiestata PKCS#11 modulis, sekojot šiem norādījumiem.

Instalējiet pakalpojumu sniedzēju. Fedora sistēmai ir pieejama pakete ar nosaukumu pkcs11-provider. Citām Linux distributīvēm jums būs nepieciešams to izveidot no pirmkodaļas.

Pēc tam ir jākonfigurē OpenSSL, lai izmantotu šo pakalpojumu sniedzēju. To var izdarīt, pievienojot openssl.cnf failā šādas rindiņas:

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

Iestatiet module kā celiņu līdz instalētajam nodrošinātājam un pkcs11-module-path kā ceļu līdz instalētajam PKCS#11 modulim.

Ja vēlaties iestatīt NetHSM kā noklusējuma nodrošinātāju, varat pievienot default = pkcs11 sadaļai provider_sect.

Piezīme

OpenSSL konfigurācijas faila ceļu var norādīt, izmantojot OPENSSL_CONF vides mainīgo.

Brīdinājums

Ja galvenais OpenSSL konfigurācijas fails tiek pārveidots tā, lai tajā būtu tikai šīs rindiņas, tas var sabojāt citas programmas, kas izmanto OpenSSL. Tāpēc, iespējams, ir jāizveido atsevišķs konfigurācijas fails pakalpojumu sniedzējam.

Tad jūs varat izmantot atslēgas NetHSM, izmantojot PKCS#11 URI, piemērs:

openssl pkey -provider pkcs11 -in "pkcs11:object=rsakey" -pubout

Ja iestatāt NetHSM kā noklusējuma nodrošinātāju, varat izlaist -provider pkcs11 argumentu.

Piezīme

Pašlaik, manuāli iestatot atslēgas tipu URI, pakalpojumu sniedzējs nevar atrast atslēgu. Jūs varat izlaist URI daļu ;type=private vai ;type=public, lai tas darbotos.