5.5. 使用 HSM 保护 Nginx 中的私钥

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

因为 Nginx 也使用 OpenSSL 进行加密操作,所以对 PKCS #11 的支持必须通过 openssl-pkcs11 引擎。nginx 目前只支持从 HSM 加载私钥,证书必须作为常规文件单独提供。修改 /etc/nginx/nginx.conf 配置文件中 server 部分的 ssl_certificatessl_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: 前缀。这是因为其它 pkcs11 前缀引用引擎名称。