gpt4 book ai didi

redirect - Nginx 重定向不在 SSL 证书中的根域

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:18 25 4
gpt4 key购买 nike

我有一个用于 *.example.com 的 SSL 通配符证书,它对根域无效。我想要 Ubuntu 14.04 上的 Nginx

  1. 只接受定义主机的请求
  2. 将根域和 www 子域的所有 http 请求重定向到 https www 子域
  3. 仅在端口 443 上为根域返回 404,例如如果请求是 https://example.com

我通过下面复制的配置成功地实现了 1 和 2。

server {
#listen 80;
#isten 443;
return 404;
}

server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}

server {

listen 443 ssl;
#certificate and key referenced in common.conf
server_name www.example.com;

root /usr/share/nginx/html/example.com;
index index.php index.html index.htm;

include common/common.conf;
}

当我删除上面第二行和第三行的注释标记时,希望只为 https://example.com 返回 404 - 没有任何作用。例如,对于 https://www.example.com/,我在 Chrome 中都得到了 ERR_CONNECTION_CLOSED。和 http://ww.example.com/ .

我应该怎么做才能同时实现 1)、2) 和 3)?

非常感谢。

最佳答案

... wildcard certificate for *.example.com which is not valid for the root domain ... return 404 for the root domain only on port 443, e.g. if reuqest is https://example.com

这是不可能的。使用 https,HTTP 响应是在为 URL 中的主机建立的 TLS 连接内生成的。因此返回 404 以访问 https://example.com您必须首先拥有经过验证的 TLS 连接。但是因为 example.com 不包含在您的证书中,您在尝试建立 TLS 连接时会收到验证错误,因此没有成功建立 TLS 连接,也不会在连接内返回 404。

关于redirect - Nginx 重定向不在 SSL 证书中的根域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com