ssl_dhparam
指定用于 SSL/TLS 连接中 Diffie-Hellman 密钥交换的 DH 参数。 — NGINX HTTP Core
ssl_dhparam
httpserver
语法ssl_dhparam path;
默认值none
上下文http, server
模块NGINX HTTP Core
参数1
说明
`ssl_dhparam` 指令配置在 SSL/TLS 握手期间用于安全连接的 Diffie-Hellman (DH) 参数。DH 参数在建立服务器与客户端之间的安全密钥交换时至关重要,尤其是在使用需要它们的特定 cipher suites 时。使用自定义的 DH 参数文件允许管理员指定较强的密钥长度,从而增强对潜在攻击的抵御能力。该指令接受一个参数,该参数是指向包含 DH 参数的文件的路径,通常为 PEM 格式。 当设置了 `ssl_dhparam` 时,NGINX 将在所有需要 DH 密钥交换的新 SSL 连接中使用所给的 DH 参数。该指令可在 `http` 和 `server` 上下文中使用,使其能够在全局或按服务器的基础上应用 DH 参数。确保存放 DH 参数的文件已正确配置并且 NGINX 进程能够访问此文件非常重要,否则可能导致 SSL 握手失败。 在实践中,通常使用诸如 OpenSSL 之类的工具生成强健的 DH 参数文件,并建议定期更新这些参数以保持较高的安全水平。参数长度理想情况下应至少为 2048 位以满足现代安全需求,尽管更长的参数可能会在握手过程中增加计算负担。
配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/privatekey.pem;
ssl_dhparam /path/to/dhparams.pem;
}⚠
确保 DH parameters 文件存在且可被 NGINX 进程访问,以避免 SSL 握手错误。
⚠
使用强度不足的 DH parameters 可能导致漏洞;建议使用至少 2048 bits 的参数。
⚠
对 DH parameters 的更改需要重新加载 NGINX 才能生效。