Apache¶
Môžete nakonfigurovať Apache httpd na používanie NetHSM prostredníctvom enginu OpenSSL, ktorý potom používa modul PKCS#11 NetHSM.
Súbor s certifikátom musí byť na disku, ale súkromný kľúč možno použiť z NetHSM.
Úplný príklad je k dispozícii na pod.
Konfigurácia OpenSSL¶
Nastavte engine OpenSSL podľa návodu na nastavenie OpenSSL Engine. (Poskytovatelia OpenSSL zatiaľ nie sú podporovaní Apache httpd.)
Konfigurácia Httpd¶
Na stránku httpd.conf
pridajte nasledujúce riadky :
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
musí ukazovať na súbor s certifikátom na disku.
SSLCertificateKeyFile
by mal byť PKCS#11 URI ukazujúci na súkromný kľúč v NetHSM.
Poznámka
Certifikát musíte vygenerovať samostatne a potom ho nahrať do NetHSM. Ak sa certifikát na disku a kľúč v NetHSM nezhodujú, httpd sa nespustí.
Konfigurácia libnethsm_pkcs11¶
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
Heslo môžete zabezpečiť prostredníctvom premennej prostredia (pozri Passwords) alebo ho môžete zadať v konfigurácii httpd:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Príklad¶
Ak chcete experimentovať s uvedeným príkladom, použite git na klonovanie repozitára nethsm-pkcs11 a spustite nasledujúce príkazy:
Varovanie
Spustením generovacieho skriptu sa odstráni kľúč webserver
a nahradí sa.
Nakonfigurujte NetHSM, buď skutočný, alebo kontajner. Viac informácií nájdete v príručke getting-started guide. Okrem účtu správcu budete potrebovať aj účet operátora.
Stiahnite si a nainštalujte najnovšiu verziu nethsm-pkcs11 ovládača , ktorá je k dispozícii na adrese.
Nainštalujte engine OpenSSL PKCS11 podľa opisu v príručke OpenSSL. Konfiguračný súbor nemusíte vytvárať.
Upravte premenné
HOST
,ADMIN_ACCOUNT
aADMIN_ACCOUNT_PWD
vcontainer/apache/generate.sh
tak, abyHOST
obsahovala adresu URL a port vášho NetHSM,ADMIN_ACCOUNT
obsahovala používateľské meno administrátorských účtov aADMIN_ACCOUNT_PWD
príslušné heslo. Ďalej nakonfigurujte absolútnu cestu k OpenSSL PKCS11 engine vOPENSSL_PKCS11_ENGINE_PATH
a absolútnu cestu k NetHSM PKCS11 knižnici vNETHSM_PKCS11_LIBRARY_PATH
.Vytvorte konfiguračný súbor NetHSM PKCS11 v jednom zo známych umiestnení ` <pkcs11-setup.html#configuration>`__, napr.
/etc/nitrokey/p11nethsm.conf
. Musí mať nakonfigurovaný účet operátora a používať tú istú inštanciu NetHSM, ktorá bola predtým uvedená v generovacom skripte.Aktualizujte konfiguráciu PKCS11 na stránke
container/apache/p11nethsm.conf
s vašou adresou URL NetHSM a platnými povereniami operátora.Vygenerujte certifikát a kľúč.
./container/apache/generate.sh
Zostavte kontajner.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Spustite kontajner.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
Testovacia stránka Apache bude k dispozícii na adrese https://localhost:9443/. Všimnite si, že váš prehliadač vás, dúfajme, upozorní, že certifikát webových stránok je podpísaný samopodpisom.