无法访问带有SSL证书的子域

时间:2019-06-01 18:20:49

标签: nginx asp.net-core ssl-certificate wildcard-subdomain godaddy-api

我有一个ASP Net Core应用程序在Google Cloud Engine的Linux服务器中运行。主页显示完美,但是当我单击按钮导航到子域时,显示“ ERR_NAME_NOT_RESOLVED”,显示“无法访问此站点”。我在应用程序日志中没有看到任何错误,因此我想调用甚至无法到达应用程序。

当应用程序在本地Windows计算机上运行时,所有子域都可以访问并完全正常运行。

我尝试在本地Linux机器上运行该应用程序,结果是相同的。一切正常。

仅当没有请求的SSL证书时,才能访问服务器子域。

例如,当我创建一个子域时:subdomain.example.com是否可以访问它。通过这项工作,我请求了当前子域的证书。这也可以正常工作,并且该子域当前处于安全状态。但是,当我创建一个新的子域并重复前面的步骤时,先前的子域不再起作用,但是新的子域起作用了。

在没有证书要求的情况下,所有这些子域都可以正常工作,但是子域是“不安全的”。

使用GoDaddy要求证书。

这是Nginx的配置:

server {
    server_name   example.com *.example.com;
    location / {
        proxy_pass         https://localhost:5001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }

    location /activityhub {
        proxy_pass https://localhost:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /votehub {
        proxy_pass https://localhost:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

    }

    listen 443 ssl; 
    ssl_certificate /root/letsencrypt/dehydrated/certs/example.com/fullchain.pem; 
    ssl_certificate_key /root/letsencrypt/dehydrated/certs/example.com/privkey.pem;
}

server {
    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } 
}

这个想法是一个站点,用户可以在其中为组织创建不同的子域。因此,当用户按下按钮时,他们可以创建一个子域:organisation.example.com以显示自己的组织。此时,应用程序在https://organisation.localhost:5001上创建一个子域。现在,该域名应该自动以dns之类的域名“ https://organisation.example.com进行安全保护。请求SSL证书的域为example.com和* .example.com

我希望所有子域都可以使用SSL证书,而不会使子域不安全或无法访问。所有这些子域都应使用通配符。

0 个答案:

没有答案