Apache

Voit määrittää Apache httpd käyttämään NetHSM:ää OpenSSL-moottorin kautta, joka käyttää NetHSM:n PKCS#11-moduulia.

Varmentetiedoston on oltava levyllä, mutta yksityistä avainta voidaan käyttää NetHSM:stä.

Täydellinen esimerkki on saatavilla alla.

OpenSSL-konfiguraatio

Määritä OpenSSL-moottori noudattamalla OpenSSL-moottorin asennusopasta. (Apache httpd ei vielä tue OpenSSL-palvelimia.)

Httpd-konfigurointi

Lisää seuraavat rivit osoitteeseen httpd.conf :

Listen 443
#...
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
#...

<VirtualHost *:443>
    DocumentRoot /usr/local/apache2/htdocs
    SSLEngine on
    SSLCertificateFile /certs/certificate.pem
    SSLCertificateKeyFile "pkcs11:object=webserver"
    ErrorLog /tmp/a-error.log
    CustomLog /tmp/a-access.log combined
</VirtualHost>

Osoitteen SSLCertificateFile on osoitettava levyllä olevaan varmennetiedostoon.

SSLCertificateKeyFile pitäisi olla PKCS#11 URI, joka osoittaa NetHSM:ssä olevaan yksityiseen avaimeen.

Muista

Varmenne on luotava erikseen ja ladattava sitten NetHSM:ään. Jos levyllä oleva varmenne ja NetHSM:ssä oleva avain eivät täsmää, httpd ei käynnisty.

libnethsm_pkcs11 Konfigurointi

slots:
  - label: LocalHSM
    description: Local HSM (docker)
    url: "https://192.168.3.161:8443/api/v1"
    operator:
      username: "operator"
      password: "opPassphrase"

Voit suojata salasanan antamalla sen ympäristömuuttujalla (katso Passwords) tai antamalla sen httpd:n asetuksissa:

SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";

Esimerkki

Jos haluat kokeilla annettua esimerkkiä käytä git-ohjelmaa kloonataksesi nethsm-pkcs11-arkiston ja suorita seuraavat komennot:

Varoitus

Generointiskriptin suorittaminen poistaa avaimen webserver ja korvaa sen.

  1. Määritä NetHSM, joko oikea tai kontti. Katso lisätietoja osoitteesta getting-started guide. Järjestelmänvalvojan lisäksi tarvitset operaattoritilin.

  2. Lataa ja asenna uusin versio nethsm-pkcs11 -ajurista , joka on saatavilla täältä.

  3. Asenna OpenSSL PKCS11 -moottori OpenSSL Manual. Sinun ei tarvitse luoda asetustiedostoa.

  4. Säädä muuttujat HOST, ADMIN_ACCOUNT ja ADMIN_ACCOUNT_PWD muuttujiin container/apache/generate.sh siten, että HOST sisältää NetHSM:n URL-osoitteen ja portin, ADMIN_ACCOUNT sisältää järjestelmänvalvojan käyttäjätunnuksen ja ADMIN_ACCOUNT_PWD vastaavan salasanan. Määritä lisäksi OpenSSL PKCS11 -moottorin absoluuttinen polku osoitteessa OPENSSL_PKCS11_ENGINE_PATH ja NetHSM PKCS11 -kirjaston absoluuttinen polku osoitteessa NETHSM_PKCS11_LIBRARY_PATH.

  5. Luo NetHSM PKCS11 -määritystiedosto johonkin tunnetuista sijainneista, esim. /etc/nitrokey/p11nethsm.conf. Siihen on määritettävä operaattoritili ja siinä on käytettävä samaa NetHSM-instanssia, joka on määritetty generate-skriptissä aiemmin.

  6. Päivitä PKCS11-konfiguraatio osoitteessa container/apache/p11nethsm.conf NetHSM:n URL-osoitteella ja voimassa olevilla käyttäjän tunnuksilla.

  7. Luo varmenne ja avain.

./container/apache/generate.sh
  1. Rakenna säiliö.

docker build -f container/apache/Dockerfile . -t pkcs-httpd
  1. Käynnistä säiliö.

docker run -p 9443:443 -p 9080:80 pkcs-httpd

Apachen testisivu on saatavilla osoitteessa https://localhost:9443/. Huomaa, että selaimesi toivottavasti varoittaa sinua siitä, että verkkosivujen varmenne on itse allekirjoitettu.