Apache#

Saate konfigureerida Apache httpd kasutama NetHSM-i OpenSSL-mootori kaudu, mis kasutab siis NetHSM-i PKCS#11 moodulit.

Sertifikaadifail peab olema kettal, kuid privaatvõtit saab kasutada NetHSMist.

Täielik näide on kättesaadav allpool.

OpenSSL konfiguratsioon#

Seadistage OpenSSL mootor, järgides OpenSSL mootori seadistamise juhendit. (OpenSSL pakkujad ei toeta veel Apache httpd-d.)

Httpd konfiguratsioon#

Lisage järgmised read oma 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>

SSLCertificateFile peab osutama kettal asuvale sertifikaadifailile.

SSLCertificateKeyFile peaks olema PKCS#11 URI, mis osutab NetHSMis olevale privaatvõtmele.

Märkus

Te peate sertifikaadi eraldi genereerima ja seejärel selle NetHSMi üles laadima. Kui kettal olev sertifikaat ja NetHSMis olev võti ei ühti, ei käivitu httpd.

libnethsm_pkcs11 Konfiguratsioon#

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

Salasõna kindlustamiseks võite selle anda keskkonnamuutuja kaudu (vt Paroolid) või anda selle httpd konfiguratsioonis:

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

Näide#

Kui soovite eksperimenteerida antud näitega kasutage git’i, et kloonida nethsm-pkcs11 repositooriumi ja käivitage järgmised käsud:

Hoiatus

Genereerimise skripti käivitamine kustutab võtme webserver ja asendab selle.

  1. Konfigureerige NetHSM, kas tõeline või konteiner. Lisateavet leiate getting-started guide. Lisaks administraatorile on vaja ka operaatorikontot.

  2. Lae alla ja paigalda uusim versioon nethsm-pkcs11 draiverist , mis on saadaval siit.

  3. Paigaldage OpenSSL PKCS11 mootor, nagu on kirjeldatud OpenSSL Manual. Konfigureerimisfaili ei ole vaja luua.

  4. Kohandage muutujaid HOST, ADMIN_ACCOUNT ja ADMIN_ACCOUNT_PWD container/apache/generate.sh nii, et HOST sisaldab teie NetHSM-i URL-i ja porti, ADMIN_ACCOUNT sisaldab administraatori kasutajanime ja ADMIN_ACCOUNT_PWD vastavat parooli. Lisaks konfigureerige OpenSSL PKCS11 mootori absoluutne tee aadressil OPENSSL_PKCS11_ENGINE_PATH ja NetHSM PKCS11 raamatukogu absoluutne tee aadressil NETHSM_PKCS11_LIBRARY_PATH.

  5. Looge NetHSM PKCS11 konfiguratsioonifail ühes tuntud asukohas, nt /etc/nitrokey/p11nethsm.conf. See peab olema konfigureeritud operaatorikonto ja kasutama sama NetHSMi instantsi, mis on eelnevalt generate scriptis määratud.

  6. Uuendage PKCS11 konfiguratsiooni aadressil container/apache/p11nethsm.conf oma NetHSM-i URL-i ja kehtivate operaatorite volitustega.

  7. Sertifikaadi ja võtme genereerimine.

./container/apache/generate.sh
  1. Ehitage konteiner.

docker build -f container/apache/Dockerfile . -t pkcs-httpd
  1. Käivitage konteiner.

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

Apache’i testleht on kättesaadav aadressil https://localhost:9443/. Pange tähele, et teie veebilehitseja hoiatab teid loodetavasti, et veebilehtede sertifikaat on isesigneeritud.