Apache#

Galite sukonfigūruoti Apache httpd naudoti NetHSM per OpenSSL variklį, kuris naudoja NetHSM PKCS#11 modulį.

Sertifikato failas turi būti diske, tačiau privatųjį raktą galima naudoti iš NetHSM.

Visą pavyzdį galima rasti žemiau.

„OpenSSL“ konfigūracija#

Nustatykite OpenSSL variklį vadovaudamiesi OpenSSL variklio sąrankos vadovu. (OpenSSL teikėjai dar nepalaikomi „Apache httpd“.)

Httpd konfigūracija#

Į httpd.conf pridėkite šias eilutes:

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>

SSLCertificateFile turi nurodyti į sertifikato failą diske.

SSLCertificateKeyFile turėtų būti PKCS#11 URI, nurodantis į privatų raktą, esantį NetHSM.

Pastaba

Sertifikatą reikia sukurti atskirai ir tada įkelti į NetHSM. Jei diske esantis sertifikatas ir NetHSM esantis raktas nesutampa, httpd neįsijungs.

libnethsm_pkcs11 konfigūracija#

slots:
  - label: LocalHSM
    description: Local HSM (docker)
    url: "https://192.168.3.161:8443/api/v1"
    operator:
      username: "operator"
      password: "opPassphrase"

Norėdami apsaugoti slaptažodį, galite jį pateikti per aplinkos kintamąjį (žr. Setup) arba nurodyti jį httpd konfigūracijoje:

SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";

Pavyzdys#

Jei norite eksperimentuoti su pateiktu pavyzdžiu, naudokite git, kad klonuotumėte nethsm-pkcs11 saugyklą ir vykdykite šias komandas:

Įspėjimas

Paleidus generavimo scenarijų ištrinamas webserver raktas ir jis pakeičiamas nauju.

  1. Sukonfigūruokite tikrą arba konteinerį NetHSM. Daugiau informacijos rasite pradžios vadove.

  2. Jei jūsų NetHSM veikia ne localhost, jums reikės pakeisti curl užklausų URL adresą container/apache/generate.sh, kad jis būtų nukreiptas į jūsų NetHSM.

  3. Pakeiskite libnethsm_pkcs11 konfigūraciją taip, kad ji atitiktų jūsų NetHSM container/apache/p11nethsm.conf.

  4. Sukurkite sertifikatą ir raktą.

./container/apache/generate.sh
  1. Pastatykite konteinerį.

docker build -f container/apache/Dockerfile . -t pkcs-httpd
  1. Paleiskite konteinerį.

docker run -p 9443:443 -p 9080:80 pkcs-httpd

Konteinerį bus galima rasti adresu https://localhost:9443/.