OpenSSL#
Varoitus
Yksityisen avaimen hakeminen kaataa OpenSSL:n. Tämä on normaalia, koska yksityisiä avaimia ei voi poimia NetHSM:stä. Sen sijaan kannattaa ehkä hakea julkinen avain (ks. esimerkki alla).
Moottori#
Varoitus
Kun käytetään moottorin (libp11) versiota 0.4.12 tai vanhempaa, EdDSA-avain NetHSM:ssä aiheuttaa sen, että OpenSSL ei löydä mitään avainta. Versiossa 0.4.12 ja vanhemmissa versioissa moottori listaa kaikki NetHSM:ssä olevat avaimet, kun avainta pyydetään. Kun avainta etsitään tunnisteen tai id:n perusteella, on suositeltavaa käyttää versiota 0.4.13 tai uudempaa tai rakentaa libp11 lähdekoodista. Moottorin binääri on osoitteessa src/.libs/pkcs11.so
.
OpenSSL engine -rajapinta on vanha tapa toteuttaa OpenSSL:n mukautettuja taustayhteyksiä, ja se on poistettu käytöstä OpenSSL 3:ssa. Tämä on edelleen vakain tapa käyttää NetHSM:ää OpenSSL:n kanssa.
Sinun on asennettava PKCS#11-moduuli noudattamalla näitä ohjeita.
Asenna moottori:
apt install libengine-pkcs11-openssl
dnf install openssl-pkcs11
pacman -S libp11
Seuraavaksi sinun on määritettävä OpenSSL käyttämään moottoria. Tämä tehdään lisäämällä seuraavat rivit openssl.cnf
-tiedostoon:
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
Muista
Voit määrittää OpenSSL:lle OpenSSL:n konfigurointitiedoston polun käyttämällä ympäristömuuttujaa OPENSSL_CONF
.
Varoitus
Jos OpenSSL:n pääasiallista konfiguraatiotiedostoa muutetaan niin, että se sisältää vain nämä rivit, se voi rikkoa muut OpenSSL:ää käyttävät ohjelmat. Siksi moottorille kannattaa ehkä luoda erillinen konfiguraatiotiedosto.
Korvaa /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
aiemmin asentamasi PKCS#11-moduulin polulla.
Korvaa /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
asentamasi OpenSSL-moottorin polulla. Polku vaihtelee jakelustasi riippuen. Numero kohdassa engines-3
vastaa OpenSSL-versiota. Debianissa OpenSSL 3 -moottorin polku on /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
; Fedorassa se on /usr/lib64/engines-3/libpkcs11.so
.
Nyt voit käyttää avaimia NetHSM:ssä käyttämällä PKCS#11 URI:tä, esim:
engine:pkcs11:pkcs11:object=webserver;type=private
Tämä käyttää avainta webserver
.
Muista
Voit käyttää komentoa p11tool
komennosta GnuTLS <https://gnutls.org/> saadaksesi avainten täydellisen URI:n:
p11tool --provider /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so --list-all
Esimerkkikomento#
Hae NetHSM:n epäsymmetrisen avainparin julkinen avain :
openssl pkey -engine pkcs11 -inform ENGINE -in "pkcs11:object=webserver;type=public" -pubout
Palveluntarjoaja#
OpenSSL-palveluntarjoajarajapinta on uusi tapa toteuttaa OpenSSL:n mukautettuja taustayhteyksiä. ` pkcs11-provider backend <https://github.com/latchset/pkcs11-provider>`__ on vielä varhaisessa kehitysvaiheessa.
Sinun on asennettava PKCS#11-moduuli noudattamalla näitä ohjeita.
Asenna palveluntarjoaja. Fedoralle on olemassa paketti nimeltä pkcs11-provider
. Muissa Linux-jakeluissa sinun täytyy rakentaa se lähdekoodista.
Sitten sinun on määritettävä OpenSSL käyttämään palveluntarjoajaa. Tämä tehdään lisäämällä seuraavat rivit openssl.cnf
-tiedostoon:
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
Aseta module
asentamasi palveluntarjoajan poluksi ja pkcs11-module-path
asentamasi PKCS#11-moduulin poluksi.
Jos haluat asettaa NetHSM:n oletuspalveluntarjoajaksi, voit lisätä default = pkcs11
osioon provider_sect
.
Muista
Voit määrittää OpenSSL:lle OpenSSL:n konfigurointitiedoston polun käyttämällä ympäristömuuttujaa OPENSSL_CONF
.
Varoitus
Jos OpenSSL:n pääasiallista konfiguraatiotiedostoa muutetaan niin, että se sisältää vain nämä rivit, se voi rikkoa muut OpenSSL:ää käyttävät ohjelmat. Näin ollen kannattaa ehkä luoda erillinen konfiguraatiotiedosto palveluntarjoajaa varten.
Sitten voit käyttää avaimia NetHSM:ssä käyttämällä PKCS#11 URI:tä, esim:
openssl pkey -provider pkcs11 -in "pkcs11:object=rsakey" -pubout
Jos olet määrittänyt NetHSM:n oletuspalveluntarjoajaksi, voit jättää -provider pkcs11
-argumentin pois.
Muista
Kun avaintyyppi asetetaan URI:hen manuaalisesti, palveluntarjoaja ei tällä hetkellä löydä avainta. Voit jättää URI:n ;type=private
tai ;type=public
osan pois, jotta se toimisi.