gpt4 book ai didi

ssl - 使用通配符 LetsEncrypt 证书时,NGINX 将子域重定向到记录根域的根目录

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

我有一个运行 NGINX 的 EC2 实例,我已经设置了一个涵盖子域的通配符 LetsEncrypt 证书。它实际上并没有重定向域名(例如 test.example.com 没有重定向到 example.com。它保持为 test.example.com 但显示 example.com 的文档根目录。

我非常确定我的 DNS 设置正确,因为当我删除我的 301 重定向并将根目录放在第一个服务器 block 中时,我所有的子域都正常工作,这让我相信 SSL 证书是问题所在。

这是我的 NGINX 配置:

server {
listen 80;
listen [::]:80;

server_name example.com;

return 301 https://example.com;
}

server {
listen 443 ssl;

root /var/www/html/example.com;

index index.html;

ssl_certificate /home/webadmin/letsencrypt/config/live/example.com/fullchain.pem;
ssl_certificate_key /home/webadmin/letsencrypt/config/live/example.com/privkey.pem;
}

server {
listen 80;
listen [::]:80;

server_name test.example.com;

return 301 https://test.example.com;
}

server {
listen 443 ssl;

root /var/www/html/test.example.com;

ssl_certificate /home/webadmin/letsencrypt/config/live/example.com/fullchain.pem;
ssl_certificate_key /home/webadmin/letsencrypt/config/live/example.com/privkey.pem;
}

最佳答案

根据您的示例配置,您的 SSL server block 没有 server_name,但您的 http server block 。所以 nginx 知道你在谈论 301 重定向但是 nginx 将选择第一个匹配端口/协议(protocol)的服务器 block ,如果它不匹配 server_name

关于ssl - 使用通配符 LetsEncrypt 证书时,NGINX 将子域重定向到记录根域的根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50879136/

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