小编fie*_*edl的帖子

nginx 如何验证证书(proxy_ssl_verify)?

考虑 nginx 的参数proxy_ssl_verifyproxy_ssl_trusted_certificate这些参数用于保护与上游服务器的通信。

# downstream server: nginx.conf

stream {
  server {
    # ...

    proxy_ssl on;
    proxy_ssl_verify on;

    proxy_ssl_trusted_certificate /etc/nginx/ssl/upstream.example.com/chain.pem;
    proxy_ssl_verify_depth 2;

  }
}
Run Code Online (Sandbox Code Playgroud)

我的印象是,对于,proxy_ssl onnginx 会根据upstream.example.com.proxy_ssl_trusted_certificate

但是,我遇到了一个问题,nginx 无法与上游服务器建立安全连接,并报告上游 SSL 证书验证错误: (2:unable to get Issuercertificate) while SSL 与上游握手,同时使用以下命令验证证书openssl确实有效。

# fullchain.pem: certificate sent by the upstream server
# chain.pem: CA certificate for `proxy_ssl_trusted_certificate`

# openssl verify -CAfile chain.pem fullchain.pem
fullchain.pem: OK
Run Code Online (Sandbox Code Playgroud)

这让我想知道nginx实际上是如何进行验证的。有没有办法单独重现此问题,以便调试为什么会发生错误?

文档

https://nginx.org/en/docs/http/ngx_http_proxy_module.html

proxy_ssl_verify 上 | 离开;

启用或禁用代理 …

ssl nginx

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×1

ssl ×1