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.
Kui teie NetHSM ei tööta localhostis, peate muutma curl-päringute URL-i aadressil
container/nginx/generate.sh
nii, et see viitaks teie NetHSMile.Muutke libnethsm_pkcs11 konfiguratsiooni vastavalt teie NetHSMile aadressil
container/ejbca/p11nethsm.conf
.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
Konteiner on saadaval aadressil https://localhost:9443/.