Apache#
Jūs varat konfigurēt Apache httpd, lai izmantotu NetHSM, izmantojot OpenSSL dzinēju, kas tad izmanto NetHSM PKCS#11 moduli.
Sertifikāta failam jābūt diskā, bet privāto atslēgu var izmantot no NetHSM.
Pilns piemērs ir pieejams zemāk.
OpenSSL konfigurācija#
Iestatiet OpenSSL dzinēju, sekojot OpenSSL dzinēja iestatīšanas rokasgrāmatai. (OpenSSL pakalpojumu sniedzēji vēl netiek atbalstīti Apache httpd.)
Httpd konfigurācija#
Pievienojiet httpd.conf
šādas rindas :
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
jānorāda uz sertifikāta failu diskā.
SSLCertificateKeyFile
jābūt PKCS#11 URI, kas norāda uz privāto atslēgu NetHSM.
Piezīme
Sertifikāts ir jāģenerē atsevišķi un pēc tam jāielādē NetHSM. Ja sertifikāts diskā un atslēga NetHSM nesakrīt, httpd nesāksies.
libnethsm_pkcs11 konfigurācija#
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
Lai paroli aizsargātu, varat to norādīt, izmantojot vides mainīgo (skatiet Password), vai norādīt to httpd konfigurācijā:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Piemērs#
Ja vēlaties eksperimentēt ar doto piemēru, izmantojiet git, lai klonētu nethsm-pkcs11 repozitoriju un izpildiet šādas komandas:
Brīdinājums
Palaižot ģenerēšanas skriptu, tiek dzēsta webserver
atslēga un tā tiek aizstāta.
Konfigurējiet NetHSM - reālu vai konteineru. Lai iegūtu vairāk informācijas, skatiet sākumposma rokasgrāmatu. Bez administratora jums būs nepieciešams arī operatora konts.
Lejupielādējiet un instalējiet jaunāko versiju nethsm-pkcs11 draiveris draiveris ir pieejams šeit.
Instalējiet OpenSSL PKCS11 dzinēju, kā aprakstīts OpenSSL rokasgrāmatā. Jums nav nepieciešams izveidot konfigurācijas failu.
Pielāgojiet mainīgos
HOST
,ADMIN_ACCOUNT
unADMIN_ACCOUNT_PWD
container/apache/generate.sh
tā, laiHOST
saturētu jūsu NetHSMs URL un portu,ADMIN_ACCOUNT
saturētu administratora konta lietotājvārdu unADMIN_ACCOUNT_PWD
atbilstošo paroli. Tālāk konfigurējiet OpenSSL PKCS11 dzinēja absolūto ceļuOPENSSL_PKCS11_ENGINE_PATH
un NetHSM PKCS11 bibliotēkas absolūto ceļuNETHSM_PKCS11_LIBRARY_PATH
.Izveidojiet NetHSM PKCS11 konfigurācijas failu vienā no zināmajām vietām, piemēram,
/etc/nitrokey/p11nethsm.conf
. Tajā jābūt konfigurētam operatora kontam un jāizmanto tas pats NetHSM gadījums, kas iepriekš norādīts ģenerēšanas skripta ģenerēšanā.Atjauniniet PKCS11 konfigurāciju vietnē
container/apache/p11nethsm.conf
ar savu NetHSMs URL un derīgiem operatora akreditācijas datiem.Sertifikāta un atslēgas ģenerēšana.
./container/apache/generate.sh
Izveidojiet konteineru.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Palaist konteineru.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
Apache testa lapa būs pieejama https://localhost:9443/. Ņemiet vērā, ka jūsu pārlūkprogramma, cerams, brīdinās jūs, ka vietnes sertifikāts ir pašparakstīts.