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.

  1. 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.

  2. Töltse le és telepítse a nethsm-pkcs11 illesztőprogram legújabb verzióját innen:.

  3. Telepítse az OpenSSL PKCS11 motorját a OpenSSL kézikönyvben leírtak szerint. Nem kell konfigurációs fájlt létrehoznia.

  4. Állítsa be a HOST, ADMIN_ACCOUNT és ADMIN_ACCOUNT_PWD változókat a container/apache/generate.sh-ban úgy, hogy a HOST tartalmazza a NetHSM URL-jét és portját, a ADMIN_ACCOUNT tartalmazza a rendszergazdai fiók felhasználónevét és a ADMIN_ACCOUNT_PWD a megfelelő jelszót. Továbbá konfigurálja az OpenSSL PKCS11 motor abszolút elérési útvonalát a OPENSSL_PKCS11_ENGINE_PATH és a NetHSM PKCS11 könyvtár abszolút elérési útvonalát a NETHSM_PKCS11_LIBRARY_PATH alatt.

  5. 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.

  6. 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.

  7. Generálja a tanúsítványt és a kulcsot.

./container/apache/generate.sh
  1. Építse meg a konténert.

docker build -f container/apache/Dockerfile . -t pkcs-httpd
  1. 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ú.