当我从另一个主机将其设置为网站的子域时,不安全的子域 heroku 网站



我在某些主机上有一个http://example.com网站,我希望https://myapp.herokuapp.com显示为https://subdomain.example.com

我已经在"example.com"托管端配置:

别名 myapp.herokuapp.com。

我已添加到heroku domains:add --app myapp subdomain.example.com所以现在我在调用heroku domains -a myapp时看到 CNAME 就像 subdomain.example.com

但是当我打开https://subdomain.example.com时,我看到不安全的连接,并且为 *.herokuapp.com 颁发了证书:

主题:

CN = *.herokuapp.com
O = Heroku, Inc.
L = San Francisco
S = California
C = US

替代科目:

DNS Name=*.herokuapp.com
DNS Name=herokuapp.com

那么如何让我的 heroku 子域为 https://subdomain.example.com 颁发证书呢?

另外,还有一个问题。

当我在Chrome中键入http://subdomain.example.com时,http://example.com被加载。 当我在 Firefox 中键入http://subdomain.example.com 时,http://subdomain.example.com 被加载并在没有任何加密的情况下工作,而它不允许打开http://myapp.herokuapp.com 并将其打开为https://myapp.herokuapp.com

如何在 Firefox 中避免这种行为?尝试打开http://subdomain.example.com 时,我想要的行为是始终强制https://subdomain.example.com 而不是保留到 http://subdomain.example.com 或重定向到http://example.com

我得到了 Heroku 支持团队的答案:

感谢您与我们联系。查看您的问题,我发现您配置了不正确的域。

subdomain.example.com. 599    IN      CNAME   myapp.herokuapp.com

当您向应用添加域时,Heroku 会为该域生成唯一的 DNS 目标。您需要将域指向 DNS 提供商处的此 DNS 目标。

=== myapp Custom Domains
Domain Name              DNS Record Type  DNS Target
───────────────────────  ───────────────  ──────────────────────────────────────────────────
subdomain.example.com.ru  CNAME            secure-lynx-1rbkrol1o46ccpklg1j5u2ac.herokudns.com

在您的情况下,我看到您已将子域 subdomain.example.com 添加到您的应用程序中。您需要将子域指向 DNS 提供商处具有 CNAME 记录类型(子域的 CNAME,根域的别名/ANAME(的该域的 Heroku 生成的 DNS 目标 secure-lynx-1rbkrol1o46ccpklg1j5u2ac.herokudns.com。这应该可以解决您的问题。