Nginx#
Saate seadistada nginx kasutama NetHSM-i OpenSSL-mootori kaudu, mis kasutab siis NetHSM-i PKCS#11-moodulit.
Sertifikaadifail peab olema kettal, kuid privaatvõtit saab kasutada NetHSMist.
Täielik näide on kättesaadav allpool.
OpenSSL konfiguratsioon#
Seadistage OpenSSL mootor, järgides OpenSSL mootori seadistamise juhendit.
Nginx ei toeta veel teenusepakkujaid.
Märkus
Kasutades libp11 OpenSSL mootori versiooni 0.4.12 või vanemat ja NetHSM-i, millel on palju võtmeid, muutub Nginxi esialgne laadimine aeglaseks (üle minuti 1 tuhande võtme puhul). Soovitatav on kasutada versiooni 0.4.13 või uuemat või ehitada mootor lähtekoodist.
Nginxi konfiguratsioon#
ssl_engine pkcs11;
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /certs/certificate.pem;
ssl_certificate_key "engine:pkcs11:pkcs11:object=webserver;type=private";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10s;
ssl_session_tickets off;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
ssl_certificate
peab osutama kettal asuvale sertifikaadifailile.
ssl_certificate_key
võib olla OpenSSL-i konfiguratsioon. Siinkohal kasutame OpenSSL mootorit koos PKCS#11 mooduliga ja valime privaatvõtme, mille märgistus/ID on webserver
ja võtmetüüp private
.
„ssl_certificate_key „engine:pkcs11:pkcs11:object=webserver;type=private“;
Märkus
Te peate sertifikaadi eraldi genereerima ja seejärel selle NetHSMi üles laadima. Kui kettal olev sertifikaat ja NetHSMis olev võti ei ühti, ei käivitu nginx.
libnethsm_pkcs11 Konfiguratsioon#
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
Salasõna kindlustamiseks võite selle anda keskkonnamuutuja kaudu (vt Setup) või anda selle nginxi konfiguratsioonis:
ssl_certificate_key "engine:pkcs11:pkcs11:object=webserver;type=private;pin=opPassphrase";
Näide#
Kui soovite eksperimenteerida antud näitega kasutage git’i, et kloonida nethsm-pkcs11 repositooriumi ja käivitage järgmised käsud:
Hoiatus
Genereerimise skripti käivitamine kustutab võtme webserver
ja asendab selle.
Konfigureerige NetHSM, kas tõeline või konteiner. Lisateavet leiate getting-started guide. Lisaks administraatorile on vaja ka operaatorikontot.
Lae alla ja paigalda uusim versioon nethsm-pkcs11 draiverist , mis on saadaval siit.
Paigaldage OpenSSL PKCS11 mootor, nagu on kirjeldatud OpenSSL Manual. Konfigureerimisfaili ei ole vaja luua.
Kohandage muutujaid
HOST
,ADMIN_ACCOUNT
jaADMIN_ACCOUNT_PWD
container/nginx/generate.sh
nii, etHOST
sisaldab teie NetHSM-i URL-i ja porti,ADMIN_ACCOUNT
sisaldab administraatori kasutajanime jaADMIN_ACCOUNT_PWD
vastavat parooli. Lisaks konfigureerige OpenSSL PKCS11 mootori absoluutne tee aadressilOPENSSL_PKCS11_ENGINE_PATH
ja NetHSM PKCS11 raamatukogu absoluutne tee aadressilNETHSM_PKCS11_LIBRARY_PATH
.Looge NetHSM PKCS11 konfiguratsioonifail ühes tuntud asukohas, nt
/etc/nitrokey/p11nethsm.conf
. See peab olema konfigureeritud operaatorikonto ja kasutama sama NetHSMi instantsi, mis on eelnevalt generate scriptis määratud.Uuendage PKCS11 konfiguratsiooni aadressil
container/nginx/p11nethsm.conf
oma NetHSM-i URL-i ja kehtivate operaatorite volitustega.Sertifikaadi ja võtme genereerimine.
./container/nginx/generate.sh
Ehitage konteiner.
docker build -f container/nginx/Dockerfile . -t pkcs-nginx
Käivitage konteiner.
docker run -p 9443:443 -p 9080:80 pkcs-nginx
NGINXi testleht on kättesaadav aadressil https://localhost:9443/. Pange tähele, et teie veebilehitseja hoiatab teid loodetavasti, et veebilehtede sertifikaat on isesigneeritud.