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

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.