首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nginx如何验证证书(proxy_ssl_verify)?

nginx如何验证证书(proxy_ssl_verify)?
EN

Server Fault用户
提问于 2021-02-09 14:24:30
回答 1查看 8.7K关注 0票数 0

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

代码语言:javascript
运行
复制
# 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;

  }
}

我的印象是,对于proxy_ssl on,nginx将验证上游服务器(upstream.example.com)针对proxy_ssl_trusted_certificate发送的证书。

但是,我遇到了一个问题,即nginx无法建立到上游服务器的安全连接,并报告一个上游SSL证书验证错误:(2:无法获得颁发者证书)而SSL握手到上游时,同时使用openssl验证证书是有效的。

代码语言:javascript
运行
复制
# 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

这让我想知道nginx到底是如何进行验证的。是否有一种方法可以隔离地再现这个错误,以便调试为什么会发生错误?

文档

https://nginx.org/en/docs/http/ngx_http_代理_module.html

关闭proxy_ssl_verify;启用或禁用对代理HTTPS服务器证书的验证。proxy_ssl_verify_depth编号;在代理的HTTPS服务器证书链中设置验证深度。proxy_ssl_trusted_certificate文件;指定具有可信CA证书的文件,格式为PEM格式,用于验证代理HTTPS服务器的证书。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-02-09 15:12:46

如文档所述,proxy_ssl_trusted_certificate期望CA证书(S)用于验证上游服务器的TLS证书。您似乎提供了上游服务器的TLS证书链。提供CA证书(S)。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1052968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档