Apache#
Je kunt Apache httpd configureren om NetHSM te gebruiken via de OpenSSL engine die dan de PKCS#11 module van NetHSM gebruikt.
Het certificaatbestand moet op de schijf staan, maar de privésleutel kan worden gebruikt vanaf de NetHSM.
Een volledig voorbeeld is beschikbaar onder.
OpenSSL-configuratie#
Stel de OpenSSL engine in volgens de OpenSSL Engine setup guide. (OpenSSL Providers worden nog niet ondersteund door Apache httpd).
Httpd-configuratie#
Voeg de volgende regels toe aan je httpd.conf
:
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>
De SSLCertificateFile
moet verwijzen naar een certificaatbestand op de schijf.
De SSLCertificateKeyFile
moet een PKCS#11 URI zijn die verwijst naar de privésleutel in de NetHSM.
Notitie
Je moet het certificaat apart genereren en vervolgens uploaden naar de NetHSM. Als het certificaat op schijf en de sleutel in de NetHSM niet overeenkomen zal httpd niet starten.
libnethsm_pkcs11 Configuratie#
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
Om het wachtwoord te beveiligen kun je het opgeven via een omgevingsvariabele (zie Setup) of het opgeven in de httpd configuratie:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Voorbeeld#
Als je wilt experimenteren met het gegeven voorbeeld gebruik dan git om de nethsm-pkcs11 repository te clonen en voer de volgende commando’s uit:
Waarschuwing
Het genereren van het script verwijdert de webserver
sleutel en vervangt deze.
Configureer een NetHSM, een echte of een container. Zie de getting-started guide voor meer informatie.
Als je NetHSM niet op localhost draait, dan moet je de URL van de curl requests in
container/apache/generate.sh
wijzigen om naar je NetHSM te wijzen.Wijzig de configuratie van libnethsm_pkcs11 zodat deze overeenkomt met je NetHSM in
container/apache/p11nethsm.conf
.Genereer het certificaat en de sleutel.
./container/apache/generate.sh
Bouw de container.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Voer de container uit.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
De container is beschikbaar op https://localhost:9443/.