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 paroli aizsargātu, varat to norādīt, izmantojot vides mainīgo (skatiet Password), 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.