11

我从 Google 购买了一个域(比如,example.com),我的 Django 应用程序(比如,mysite.herokuapp.com)在 Heroku 上运行。CNAME 在 Google 上设置为将 http 请求转发到 Heroku 上的 Django 应用程序。http://mysite.example.com从to转发请求mysite.herokuapp.com就可以了。

最近,我需要介绍progressive-web-application我的应用程序,它需要https协议,而不是http,即现在必须是 URL https://mysite.example.com,它不适用于 Google 域。我试过https://mysite.herokuapp.com了,效果很好,这意味着 Heroku 已经支持https. 但是,我尝试了很长时间(也用谷歌搜索了),但没有找到解决方案。

那么如何将 Google 域设置为使用https协议呢?

4

4 回答 4

6

来自 Google 的 DNS 答案不能包含端口或协议(http 与 https),它只包含主机名。

您需要在 Heroku django 应用程序中添加从 http 到 https 的重定向,请参阅此处以获取更多说明。

于 2018-04-05T12:59:24.213 回答
4

您需要更改的不是 Google,而是您的 Django 配置。

SECURE_SSL_REDIRECT设置为 True,并在您的应用中启用SecurityMiddleware,任何请求都应自动从 HTTP 重定向到 HTTPS。

于 2018-04-06T02:43:45.140 回答
1

切换到 HTTPS 时,您需要向 heroku 添加证书,该过程会将主机从“mysite.heroku.com”更新为“tokyo-2121.herokussl.com”。您将需要更新您的 DNS 以从新的符合 SSL 的 heroku 实例为 HTTP 和 HTTPS 提供 HTTPS 页面。

这是一个概述与 Godaddy 的过程的教程,它应该非常相似或所有 DNS 提供商。

http://www.joshwright.com/tips/setup-a-godaddy-ssl-certificate-on-heroku

于 2018-04-05T20:08:51.040 回答
0

刚刚从 Heroku 的一位工程师那里得到了解决方案:

1) 将 Heroku 应用程序升级为付费应用程序(例如,Hobby

2) 在 DNS 提供商的设置中,将 DNS 目标设置为<app_name>.<domain>.herokudns.com(例如,“mysite.example.com.herokudns.com”)

3)运行$ heroku certs:auto:refresh -a <app_name>(例如,$ heroku certs:auto:refresh -a mysite

于 2018-04-06T10:15:55.493 回答