mes*_*600 5 ssl nginx proxypass
[更新]
我使用了 NGINX 网站上的默认配置文件(但没有双向身份验证),以便通过 SSL 在四个上游应用服务器之间进行负载平衡,proxy_ssl_verify设置为on. 是的,所有上游服务器都有有效证书,CN 与其主机名匹配,并且 CA 已被放置在具有适当权限的 NGINX 服务器上并在 nginx.conf 文件中设置。这是我的发现(删除了其余的配置,因为它不相关):
好的 - 适用于proxy_ssl_verify off:
溪流 {
上游 upstream_appsrv{
服务器 serverA.domain.com:443;
}
服务器 {
听8443;
proxy_pass https://upstream_appsrv;
(……)
proxy_ssl 关闭;
proxy_ssl_verify 关闭;
}
}
不正常 - 一旦我设置proxy_ssl_verify on+ proxy_ssl on:
溪流 {
上游 upstream_appsrv{
服务器 serverA.domain.com:443;
}
服务器 {
听8443;
proxy_pass https://upstream_appsrv;
(……)
proxy_ssl 开启;
proxy_ssl_verify 开启;
}
}
NGINX 开始抛出有关上游 SSL 证书与后端不匹配的错误:2 upstream SSL certificate does not match "serverB.domain.com" while SSL handshaking to upstream...让我们更改一些内容并转到第三步。
好的!- 现在一切正常:
溪流 {
上游 serverA.domain.com{
服务器 serverA.domain.com:443;
}
服务器 {
听8443;
proxy_pass https://serverA.domain.com;
(……)
proxy_ssl 开启;
proxy_ssl_verify 开启;
}
}
事实证明,不仅server定义必须匹配上游服务器上证书中使用的 CN(显然),而且还upstream upstream_appsrv需要匹配 CN!好的,下一步,让我们添加另一个上游服务器:
不好...
溪流 {
上游 serverA.domain.com{
服务器 serverB.domain.com:443;
}
服务器 {
听8443;
proxy_pass https://serverA.domain.com;
(……)
proxy_ssl 开启;
proxy_ssl_verify 开启;
}
}
一旦 NGINX 连接到 serverB,我们又开始看到相同的错误......即使 serverB 有正确的 CN 设置匹配它的主机名(并且使用与 serverA 相同的 CA),但事实证明 NGINX 尝试将 CN 与upstream定义匹配. 这就是我正在努力解决的问题。
| 归档时间: |
|
| 查看次数: |
7919 次 |
| 最近记录: |