Red Hat Training

A Red Hat training course is available for RHEL 8

6.5. 使用 HSM 在 Nginx 中保护私钥

Nginx HTTP 服务器可以使用硬件安全模块(HSM)中存储的私钥,这有助于防止密钥泄漏和中间人攻击。请注意,这通常需要高性能的 HSM 用于繁忙的服务器。

因为 Nginx 还使用 OpenSSL 进行加密操作,所以对 PKCS #11 的支持必须通过 openssl-pkcs11 引擎。nginx 目前只支持从 HSM 加载私钥,并且证书必须作为常规文件单独提供。修改 /etc/nginx/nginx.conf 配置文件的 server 部分的 ssl_certificate ssl_certificate_key 选项:

ssl_certificate     /path/to/cert.pem
ssl_certificate_key "engine:pkcs11:pkcs11:token=softhsm;id=%01;type=private?pin-value=111111";

请注意,Nginx 配置文件中 PKCS #11 URI 需要 engine:pkcs 11: 前缀。这是因为 other pkcs11 前缀引用引擎名称。