【问题标题】:SSL on Load Balanced Nginx Server负载平衡 Nginx 服务器上的 SSL
【发布时间】:2016-12-07 18:33:04
【问题描述】:

我在客户端应用程序上设置 SSL 时遇到了一些问题。 该应用程序由 AWS EC2 实例上的 Nginx 提供。 我在这台服务器前面有一个 AWS 负载均衡器。 我的 SSL 证书安装在负载均衡器上,所有流量都路由到相关端口上的 Nginx。

如果我导航到 Nginx 提供的网页之一,我的浏览器中会出现 SSL 证书错误。

如果我运行以下 OpenSSL 命令,我会收到错误...

openssl s_client -debug -connect example.com:443

Verify return code: 21 (unable to verify the first certificate)

如果我在 Digicert 上检查域,我会得到...

SSL Certificate is not trusted

我对其他项目(LB 上的 SSL)使用相同类型的设置,并且效果很好。只有我的 Nginx 实例给我带来了麻烦。 Nginx 是否有一些我可能缺少的配置?

谢谢!

【问题讨论】:

  • 您是否缺少一些中间证书?
  • 嗨,这就是我对 SSL 的了解开始变得有点模糊的地方。我知道中间证书,但它们应该去哪里?在 LB 上还是这是 nginx 特有的东西?谢谢!

标签: ssl nginx


【解决方案1】:

证书颁发机构为您提供签名证书和(零个或多个)中间证书。您需要与签署您的证书的人确认哪些(如果有)中间证书需要与您的签名证书捆绑在一起。

nginx 配置文件中,ssl_certificate 指令指定包含您的签名证书和连接在一起的任何中间证书的文件,签名证书首先出现。这是一个文本文件,应该在行标记之间包含一个或多个部分:

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

请参阅this document 了解更多信息。

【讨论】:

  • 那么我是否还需要在 nginx 以及负载均衡器上安装证书?目前我只是在负载均衡器上安装了证书
  • 对不起,不,证书只需要在终止 SSL 连接的任何进程中安装。如果负载均衡器仅使用 HTTP 代理到 nginx,则 nginx 不需要证书。对nginx的引用表示歉意。
  • 没问题!那么我应该在负载均衡器上安装中间证书吗?
  • 如果您的证书需要中间证书,那么它们必须与它一起安装。
  • 成功了!我将证书合并到一个文件中。 AWS UI 还有一个错误,中间证书字段似乎不起作用。相反,我在一个字段中拥有包含所有证书的单个文件
猜你喜欢
  • 2013-03-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2019-01-05
  • 1970-01-01
  • 2022-01-10
  • 2016-11-10
相关资源
最近更新 更多