Apache¶
Du kan konfigurere Apache httpd til at bruge NetHSM via OpenSSL-motoren, som så bruger NetHSM’s PKCS#11-modul.
Certifikatfilen skal være på disken, men den private nøgle kan bruges fra NetHSM.
Et komplet eksempel er tilgængeligt nedenfor.
OpenSSL-konfiguration¶
Opsæt OpenSSL-motoren ved at følge OpenSSL Engine setup guide. (OpenSSL Providers er endnu ikke understøttet af Apache httpd).
Httpd-konfiguration¶
Tilføj følgende linjer til din 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>
The SSLCertificateFile must point to a certificate file on the disk.
The SSLCertificateKeyFile should be a PKCS#11 URI pointing to the private key in the NetHSM.
Bemærk
Du skal generere certifikatet separat og derefter uploade det til NetHSM. Hvis certifikatet på disken og nøglen i NetHSM ikke stemmer overens, vil httpd ikke starte.
libnethsm_pkcs11 Konfiguration¶
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
To secure the password you can provide it via an environment variable (see Passwords) or provide it in the httpd configuration:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Eksempel¶
Hvis du vil eksperimentere med det givne eksempel, skal du bruge git til at klone nethsm-pkcs11 repository og køre følgende kommandoer:
Advarsel
Når du kører genereringsscriptet, slettes nøglen webserver, og den erstattes.
Configure a NetHSM, either a real one or a container. See the getting-started guide for more information. Besides an administrator, you are going to need an operator account.
Download og installer den nyeste version af nethsm-pkcs11-driveren , der er tilgængelig her.
Installer OpenSSL PKCS11-motoren som beskrevet i OpenSSL Manual. Du behøver ikke at oprette en konfigurationsfil.
Juster variablerne
HOST,ADMIN_ACCOUNTogADMIN_ACCOUNT_PWDicontainer/apache/generate.sh, såHOSTindeholder din NetHSMs URL og port,ADMIN_ACCOUNTindeholder en administratorkontos brugernavn ogADMIN_ACCOUNT_PWDden tilsvarende adgangskode. Konfigurer desuden den absolutte sti til OpenSSL PKCS11-motoren iOPENSSL_PKCS11_ENGINE_PATHog den absolutte sti til NetHSM PKCS11-biblioteket iNETHSM_PKCS11_LIBRARY_PATH.Create a NetHSM PKCS11 configuration file in one of the known locations, e.g.,
/etc/nitrokey/p11nethsm.conf. It must have configured an operator account and use the same NetHSM instance specified in the generate script before.Opdater PKCS11-konfigurationen i
container/apache/p11nethsm.confmed din NetHSMs URL og gyldige operatørlegitimationsoplysninger.Generer certifikatet og nøglen.
./container/apache/generate.sh
Byg beholderen.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Kør containeren.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
Apache-testsiden vil være tilgængelig på https://localhost:9443/. Bemærk, at din browser forhåbentlig vil advare dig om, at hjemmesidens certifikat er selvsigneret.