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 azt egy környezeti változóval (lásd Passwords), 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. A rendszergazdán kívül szükséged lesz egy operátori fiókra is.
Töltse le és telepítse a nethsm-pkcs11 illesztőprogram legújabb verzióját innen:.
Telepítse az OpenSSL PKCS11 motorját a OpenSSL kézikönyvben leírtak szerint. Nem kell konfigurációs fájlt létrehoznia.
Állítsa be a
HOST
,ADMIN_ACCOUNT
ésADMIN_ACCOUNT_PWD
változókat acontainer/apache/generate.sh
-ban úgy, hogy aHOST
tartalmazza a NetHSM URL-jét és portját, aADMIN_ACCOUNT
tartalmazza a rendszergazdai fiók felhasználónevét és aADMIN_ACCOUNT_PWD
a megfelelő jelszót. Továbbá konfigurálja az OpenSSL PKCS11 motor abszolút elérési útvonalát aOPENSSL_PKCS11_ENGINE_PATH
és a NetHSM PKCS11 könyvtár abszolút elérési útvonalát aNETHSM_PKCS11_LIBRARY_PATH
alatt.Hozzon létre egy NetHSM PKCS11 konfigurációs fájlt a ismert helyek egyikén, pl.
/etc/nitrokey/p11nethsm.conf
. Be kell konfigurálnia egy operátori fiókot, és ugyanazt a NetHSM-példányt kell használnia, amelyet korábban a generáló szkriptben megadott.Frissítse a PKCS11 konfigurációt a
container/apache/p11nethsm.conf
oldalon a NetHSM URL-címével és az érvényes üzemeltetői hitelesítő adatokkal.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
Az Apache tesztoldal a https://localhost:9443/ címen lesz elérhető. Vegye figyelembe, hogy a böngészője remélhetőleg figyelmeztetni fogja, hogy a weboldalak tanúsítványa saját aláírású.