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
dnf install openssl-pkcs11
pacman -S libp11
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.