Apache#

Jūs varat konfigurēt Apache httpd, lai izmantotu NetHSM, izmantojot OpenSSL dzinēju, kas tad izmanto NetHSM PKCS#11 moduli.

Sertifikāta failam jābūt diskā, bet privāto atslēgu var izmantot no NetHSM.

Pilns piemērs ir pieejams zemāk.

OpenSSL konfigurācija#

Iestatiet OpenSSL dzinēju, sekojot OpenSSL dzinēja iestatīšanas rokasgrāmatai. (OpenSSL pakalpojumu sniedzēji vēl netiek atbalstīti Apache httpd.)

Httpd konfigurācija#

Pievienojiet httpd.conf šādas rindas :

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 jānorāda uz sertifikāta failu diskā.

SSLCertificateKeyFile jābūt PKCS#11 URI, kas norāda uz privāto atslēgu NetHSM.

Piezīme

Sertifikāts ir jāģenerē atsevišķi un pēc tam jāielādē NetHSM. Ja sertifikāts diskā un atslēga NetHSM nesakrīt, httpd nesāksies.

libnethsm_pkcs11 konfigurācija#

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

Lai nodrošinātu paroles drošību, varat to norādīt, izmantojot vides mainīgo (skatiet Iestatīšana), vai norādīt to httpd konfigurācijā:

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

Piemērs#

Ja vēlaties eksperimentēt ar doto piemēru, izmantojiet git, lai klonētu nethsm-pkcs11 repozitoriju un izpildiet šādas komandas:

Brīdinājums

Palaižot ģenerēšanas skriptu, tiek dzēsta webserver atslēga un tā tiek aizstāta.

  1. Konfigurējiet NetHSM - reālu vai konteineru. Lai iegūtu vairāk informācijas, skatiet sākumposma rokasgrāmatu. Bez administratora jums būs nepieciešams arī operatora konts.

  2. Lejupielādējiet un instalējiet jaunāko versiju nethsm-pkcs11 draiveris draiveris ir pieejams šeit.

  3. Instalējiet OpenSSL PKCS11 dzinēju, kā aprakstīts OpenSSL rokasgrāmatā. Jums nav nepieciešams izveidot konfigurācijas failu.

  4. Pielāgojiet mainīgos HOST, ADMIN_ACCOUNT un ADMIN_ACCOUNT_PWD container/apache/generate.sh tā, lai HOST saturētu jūsu NetHSMs URL un portu, ADMIN_ACCOUNT saturētu administratora konta lietotājvārdu un ADMIN_ACCOUNT_PWD atbilstošo paroli. Tālāk konfigurējiet OpenSSL PKCS11 dzinēja absolūto ceļu OPENSSL_PKCS11_ENGINE_PATH un NetHSM PKCS11 bibliotēkas absolūto ceļu NETHSM_PKCS11_LIBRARY_PATH.

  5. Izveidojiet NetHSM PKCS11 konfigurācijas failu vienā no zināmajām vietām, piemēram, /etc/nitrokey/p11nethsm.conf. Tajā jābūt konfigurētam operatora kontam un jāizmanto tas pats NetHSM gadījums, kas iepriekš norādīts ģenerēšanas skripta ģenerēšanā.

  6. Atjauniniet PKCS11 konfigurāciju vietnē container/apache/p11nethsm.conf ar savu NetHSMs URL un derīgiem operatora akreditācijas datiem.

  7. Sertifikāta un atslēgas ģenerēšana.

./container/apache/generate.sh
  1. Izveidojiet konteineru.

docker build -f container/apache/Dockerfile . -t pkcs-httpd
  1. Palaist konteineru.

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

Apache testa lapa būs pieejama https://localhost:9443/. Ņemiet vērā, ka jūsu pārlūkprogramma, cerams, brīdinās jūs, ka vietnes sertifikāts ir pašparakstīts.