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 Setup) 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 ` <https://github.com/Nitrokey/nethsm-pkcs11/tree/main/container/apache>` __, 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.
Ak váš NetHSM nie je spustený na localhoste, budete musieť zmeniť adresu URL požiadaviek curl v
container/apache/generate.sh
tak, aby ukazovala na váš NetHSM.Zmeňte konfiguráciu libnethsm_pkcs11 tak, aby zodpovedala vášmu NetHSM na
container/apache/p11nethsm.conf
.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
Kontajner bude k dispozícii na https://localhost:9443/.