Apache#
Nastavite lahko Apache httpd za uporabo NetHSM prek gonilnika OpenSSL, ki nato uporablja modul PKCS#11 NetHSM.
Datoteka potrdila mora biti na disku, zasebni ključ pa se lahko uporabi v NetHSM.
Celoten primer je na voljo spodaj.
Konfiguracija OpenSSL#
Motor OpenSSL nastavite po priročniku za nastavitev motorja OpenSSL. (Apache httpd še ne podpira ponudnikov OpenSSL.)
Konfiguracija Httpd#
V spletno stran httpd.conf
dodajte naslednje vrstice :
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
mora kazati na datoteko s potrdilom na disku.
SSLCertificateKeyFile
mora biti PKCS#11 URI, ki kaže na zasebni ključ v NetHSM.
Opomba
Potrdilo morate ustvariti ločeno in ga nato naložiti v NetHSM. Če se potrdilo na disku in ključ v NetHSM ne ujemata, se httpd ne zažene.
libnethsm_pkcs11 Konfiguracija#
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
Če želite geslo zavarovati, ga lahko navedete v spremenljivki okolja (glejte Nastavitev) ali ga navedete v konfiguraciji httpd:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Primer#
Če želite eksperimentirati z danim primerom ` <https://github.com/Nitrokey/nethsm-pkcs11/tree/main/container/apache>` __, uporabite git za kloniranje skladišča nethsm-pkcs11 in zaženite naslednje ukaze:
Opozorilo
Z zagonom skripte za generiranje izbrišete ključ webserver
in ga nadomestite.
Konfigurirajte NetHSM, bodisi pravi bodisi vsebnik. Za več informacij glejte priročnik za začetek.
Če vaš NetHSM ne deluje na lokalnem gostitelju, boste morali spremeniti URL zahtevkov curl v
container/apache/generate.sh
, da bo kazal na vaš NetHSM.Spremenite konfiguracijo libnethsm_pkcs11, da bo ustrezala vašemu NetHSM na
container/apache/p11nethsm.conf
.Ustvarite potrdilo in ključ.
./container/apache/generate.sh
Zgradite posodo.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Zaženite vsebnik.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
Zabojnik bo na voljo na spletni strani https://localhost:9443/.