Ruby on rails 为Heroku域指定SSL端点
我有两个Heroku应用程序层(一个生产应用程序和一个临时应用程序) 根据子域的不同,我的DNS配置为指向其中一个Ruby on rails 为Heroku域指定SSL端点,ruby-on-rails,ssl,heroku,Ruby On Rails,Ssl,Heroku,我有两个Heroku应用程序层(一个生产应用程序和一个临时应用程序) 根据子域的不同,我的DNS配置为指向其中一个 *.example.co->应用程序制作 *.staging.example.co->app staging SSL SSL附加模块对这两个都启用。将相同的SSL通配符证书上载到这两个服务器 > heroku certs --remote production Endpoint Common Name(s)
->*.example.co
应用程序制作
->*.staging.example.co
app staging
> heroku certs --remote production
Endpoint Common Name(s) Expires Trusted
---------------------------- ------------------------ -------------------- -------
tokushima-XXXX.herokussl.com *.example.co, example.co 2018-10-10 00:00 UTC True
> heroku certs --remote staging
Endpoint Common Name(s) Expires Trusted
---------------------------- ------------------------ -------------------- -------
hiroshima-XXXX.herokussl.com *.example.co, example.co 2018-10-10 00:00 UTC True
领域
每个都有在Heroku中配置的相应域
> heroku domains --remote production
=== app-production Custom Domains
Domain Name DNS Target
----------------------------- -------------------------------------
*.example.co tokushima-XXXX.herokussl.com
example.co tokushima-XXXX.herokussl.com
> heroku domains --remote staging
=== app-staging Custom Domains
Domain Name DNS Target
-------------------- ------------------------
*.staging.example.co app-staging.herokuapp.com <-- should this be the SSL endpoint?
它会自动为我添加DNS目标。在Prod上,它会自动添加SSL端点
有办法解决这个问题吗 这是ssl通配符证书的行为方式:*.example.com的证书对foo.example.com有效,但对bar.foo.example.com无效 这是在中指定的,其中表示 名称可能包含通配符 字符*被认为与任何单个域名匹配 组件或组件片段。例如,*.a.com与foo.a.com匹配,但 不是bar.foo.a.com。f*.com与foo.com匹配,但与bar.com不匹配
啊,我明白了。所以似乎没有真正的解决办法,除非我为
*.staging.example.co
购买另一个通配符证书,对吗?或者,由于它是暂存的,我也可以生成一个自签名证书。但这能解决问题吗?谢谢自签名证书可以工作(一旦您告诉浏览器信任它),您还可以使用对多个域名有效的证书(生成证书时必须提供完整列表)
> heroku domains:add *.staging.example.co --remote staging