【发布时间】:2018-08-31 10:10:58
【问题描述】:
我一直在这里寻找关于以下代码的答案:
server {
listen 443 ssl;
server_name "host.domain.com";
location / {
proxy_pass http://host.domain.com;
}
ssl_certificate /etc/httpd/ssl/Sample_StarCert.crt;
ssl_certificate_key /etc/httpd/ssl/Sample-NPW.key;
}
这在很大程度上通过将 SSL 请求反向代理到同一台机器上的 http 服务器来处理 host.domain.com 请求(按设计)来完成它应该做的大部分工作。
当我尝试访问同一站点https://ipaddress时出现问题
现在以这种方式访问站点的浏览器会遇到证书警告。在这些情况下,我需要该证书警告消失,或者阻止该尝试,或者重定向到 FQDN 请求。两者都可以。
我一直在尝试使用其他服务器块来完成此操作,但我一直遇到的问题是 SSL 服务器块似乎真的想在处理请求之前开始向浏览器提供证书,这对我来说很奇怪,因为我认为 SNI(与此服务器一起编译)旨在在需要出示证书之前识别请求?我很可能只是误解了这一切是如何运作的,并欢迎指导。
我也尝试了条件语句,但没有成功。有什么想法吗?
【问题讨论】:
-
证书警告不会消失。
https需要有效的证书,而您的 IP 地址没有有效的证书。您可以实现的最佳效果是在用户接受证书警告之后重定向到 FQDN。 -
我害怕那个。这真有趣 。 . .我知道 Nginx 在提供证书之前正在查看浏览器请求,因为它为 FQDN 请求提供了一个证书,并为我想要的非 FQDN 请求提供了一个不同的证书,但正如你所指出的,它似乎真的想要在其他任何事情之前完成证书交易,例如阻止我试图阻止的事情(看起来是正确的)。谢谢!
标签: nginx proxy reverse-proxy