首页 > 解决方案 > 无法访问具有 SSL 证书的子域

问题描述

我有一个在谷歌云引擎上的 Linux 服务器上运行的 ASP 网络核心应用程序。主页完美显示,但是当我单击按钮导航到子域时,我得到“无法访问此站点”和“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;
    } 
}

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

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

标签: nginxasp.net-coressl-certificatewildcard-subdomaingodaddy-api

解决方案


推荐阅读