ssl - 强制 nginx 验证上游证书

标签 ssl nginx

我正在尝试在代理路径的每一层建立 TLS。我看到的是 Nginx 允许上游拥有自签名证书。有什么方法可以锁定将流量传递到上游时接受的权限吗?

end-user  --1-->  nginx01  --2-->  nginx02  --N-->  nginxN

nginx01 具有受信任的证书,最终用户可以毫无问题地进行连接。 nginx02 有一个自签名证书,当我 proxy_pass 到 https://nginx02我没有在最终用户浏览器或 nginx01 日志中看到任何投诉。我希望被拒绝。 如果我按预期从 nginx01 curl nginx02,我会收到 ssl 拒绝。

有什么方法可以强制 nginx01 验证 nginx02 证书吗?

运行 nginx 1.6.3-8 的 CentOS 7。

/etc/hosts
10.21.10.99 upstream.example.com

curl https://upstream.example.com
# ssl rejection

curl https://upstream.example.com --cacert ./upstream.example.com.crt
# works fine (200)

# nginx configuration
server {
  listen 443;
  ssl on;
  ssl_certificate /etc/nginx/security/full_chain.crt;
  ssl_certificate_key /etc/nginx/security/ingress.example.com.key;
  server_name ingress.example.com;
  location / {
    proxy_pass https://upstream.example.com;
  }
}

最佳答案

使用

proxy_ssl_verify on;
proxy_ssl_trusted_certificate /path/to/your_selfsigned_ca_cert.pem

有关更多详细信息,您可以引用 nginx 代理文档 here

关于ssl - 强制 nginx 验证上游证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36507852/

相关文章:

java - Amazon SDK 不使用自定义默认 SSL 套接字工厂

ssl - IBM MQ - 在 MQ Explorer 中可浏览的 SSL 加密消息

ruby-on-rails-3 - 如何使用 nginx 和 Unicorn 托管多个 Rails 应用程序?

ssl - Nginx SSL 和 Wkhtmltopdf 的 "QSslSocket: cannot resolve SSLv2_client_method"错误

php - 无法将加密文本插入sql

ssl - 拉取存储库时出现 X509 解析错误, 'negative serial number'

javascript - 获得 Websocket 连接的完整响应

docker - 运行多个容器而无需撰写内容?

nginx - Nginx 中不同 IP 上的不同域?

nginx - 无法启动 nginx