Web 应用程序的 Https 版本无法运行,但是 http 可以运行吗?

Web 应用程序的 Https 版本无法运行,但是 http 可以运行吗?

我正在使用 Heroku 来托管,它为我提供了一个不错的https:地址:

https://some_random_string.herokuapp.com/

我使用 Namecheap 来设置我的 DNS,方法是:

CNAME Record | www | www.my_domain.herokudns.com.

heroku domains我在 macOS bash 控制台中找到了这些信息。

www.my_domain | CNAME | www.my_domain.herokudns.com

s当我使用自定义域时,除了 Heroku 地址丢失之外,一切正常。

答案1

有点奇怪的是,Heroku 会提供一个https://地址但不允许您重定向到该地址。

您可以联系他们的客户支持并询问如何正确设置 CNAME,以便您可以使用他们已经为您创建的证书。

正在更改 ...

www.my_domain | CNAME | www.my_domain.herokudns.com

是解决此问题的关键。

答案2

根据 Heroku 开发中心应用程序的自定义域名TLS 主机名有不同的模式:

如果你使用SSL 端点,请注意您的 DNS 目标会略有不同。对于通用运行时中的应用,端点域名将采用 格式的名称example-12345.ssl.herokudns.com

虽然每个应用都可以使用默认*.herokuapp.com主机名在 HTTPS 上提供服务,但使用您自己的域名需要匹配的 TLS 证书。在应用程序中使用自己的证书的步骤在SSL 端点文档。简而言之:

  1. 生成私钥 &证书签名请求使用 OpenSSL 的 CSR:

    openssl genrsa -des3 -out server.pass.key 2048
    openssl rsa -in server.pass.key -out server.key
    openssl req -nodes -new -key server.key -out server.csr
    
  2. 使用 CSR 购买证书。

  3. 创建附加组件并添加您的证书:

    heroku addons:create ssl:endpoint
    heroku certs:add server.crt server.key --type endpoint
    

相关内容