ssl_trusted_certificate

'ssl_trusted_certificate' 指令指定一个或多个受信任的 CA 证书,用于在 SSL/TLS 场景中验证客户端证书。 — NGINX HTTP Core

ssl_trusted_certificate
httpserver
语法ssl_trusted_certificate path;
默认值none
上下文http, server
模块NGINX HTTP Core
参数1

说明

'ssl_trusted_certificate' 指令在 NGINX 的 SSL/TLS 配置中起着关键作用,它指定一个或多个证书颁发机构 (CA) 证书的路径,这些证书用于在双向 TLS 身份验证期间验证客户端证书。当配置后,NGINX 会从指定的文件中加载这些受信任的证书,并在 SSL 握手阶段使用它们来验证客户端证书的真实性。 在使用客户端认证时,该指令尤其重要,因为服务器需要确保证书由受信任的颁发机构签发。'ssl_trusted_certificate' 中指定的证书可以采用 PEM 格式,便于与其他受信任证书源进行集成。此外,如果指定的是合并的文件,应确保根 CA 的证书位于首位,随后是任意中间证书,以确保正确的证书链验证。 还值得注意的是,如果未设置该指令,或指定的证书文件无法加载,NGINX 将无法验证客户端证书,这可能带来安全风险。因此,务必始终正确配置并验证该指令所使用的证书文件的路径和权限。

配置示例

server {
    listen 443 ssl;
    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;
    ssl_trusted_certificate /path/to/ca.crt;
    ssl_client_certificate /path/to/client.crt;
    ssl_verify_client on;
}

确保 CA 证书采用正确的格式(PEM),并在配置中正确引用。

检查证书文件的权限是否设置为 NGINX 用户可读取,以避免加载错误。

请注意,不受信任或已过期的 CA 证书可能导致客户端认证失败。