Apache#
A Apache httpd úgy konfigurálható, hogy az OpenSSL motoron keresztül használja a NetHSM-et, amely aztán a NetHSM PKCS#11 modulját használja.
A tanúsítványfájlnak a lemezen kell lennie, de a privát kulcs a NetHSM-ről is használható.
Egy teljes példa elérhető a címen:.
OpenSSL konfiguráció#
Állítsa be az OpenSSL motort a OpenSSL Engine setup guide. (Az OpenSSL szolgáltatókat az Apache httpd még nem támogatja.)
Httpd konfiguráció#
Adja hozzá a következő sorokat a 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>
A SSLCertificateFile
egy lemezen található tanúsítványfájlra kell mutatnia.
A SSLCertificateKeyFile
egy PKCS#11 URI kell, hogy legyen, amely a NetHSM-ben lévő magánkulcsra mutat.
Megjegyzés
A tanúsítványt külön kell létrehoznia, majd feltöltenie a NetHSM-be. Ha a lemezen lévő tanúsítvány és a NetHSM-ben lévő kulcs nem egyezik, a httpd nem fog elindulni.
libnethsm_pkcs11 Konfiguráció#
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
A jelszó biztonságossá tételéhez megadhatja egy környezeti változóval (lásd Setup) vagy megadhatja a httpd konfigurációjában:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Példa#
Ha kísérletezni akarsz a adott példával használd a git-et a nethsm-pkcs11 repository klónozásához és futtasd a következő parancsokat:
Figyelem
A generáló szkript futtatása törli a webserver
kulcsot és kicseréli azt.
Konfiguráljon egy NetHSM-et, akár egy valódi, akár egy konténert. További információkért lásd a getting-started guide.
Ha a NetHSM nem a localhoston fut, akkor a
container/apache/generate.sh
oldalon meg kell változtatnia a curl-kérések URL-címét, hogy a NetHSM-re mutasson.Módosítsa a libnethsm_pkcs11 konfigurációját a NetHSM-nek megfelelően a
container/apache/p11nethsm.conf
címen.Generálja a tanúsítványt és a kulcsot.
./container/apache/generate.sh
Építse meg a konténert.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Futtassa a konténert.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
A konténer elérhető lesz a https://localhost:9443/.