一个Heroku应用程序中的多个SSL证书

Dal*_*ark 40 ssl heroku

是否可以在单个Heroku应用程序中拥有许多SSL证书?

我们有多个不同类型的域名,TLD指向我们的应用程序,需要保护每个域名.优选地,不重定向到不同的安全URL.

小智 92

有一种方法可以让多个SSL端点将流量路由到同一个应用程序.

SSL端点通过终止SSL连接并将未加密的流量注入正常的Heroku路由层来工作.

您可以通过创建具有新SSL端点的新应用来终止SSL连接并将流量路由到现有应用,从而充分利用这一点:

  1. 将您的域名添加到您的应用中:

    $ heroku domains:add ssl.example.com

  2. 创建一个新应用:

    $ heroku create endpoint-for-example-com

  3. 添加SSL端点附加组件($ 20 /月):

    $ heroku addons:create ssl:endpoint --app endpoint-for-example-com

  4. 将证书添加到新应用中:

     $ heroku certs:add server.crt bundle.pem server.key --app endpoint-for-example-com --type endpoint
     Resolving trust chain... done
     Adding SSL Endpoint to endpoint-for-example-com... done
     endpoint-for-example-com now served by kagawa-1482.herokussl.example.com
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使用分配给新应用程序的ssl端点(例如kagawa-1482.herokussl.example.com)作为您要保护的域名的CNAME主机.这通常在域的DNS配置中完成.

新的应用程序不需要任何dynos,但SSL终端附加组件将收取每月20美元的费用.

笔记:

  • Heroku没有记录此解决方案,因此将来可能会删除或更改此行为. Heroku已确认这对生产使用是安全的.
  • 请务必在与主应用相同的区域中创建端点.
  • 您的DNS更改可能需要一段时间才能生效.

  • 我刚收到Heroku支持及其路由团队的确认,这种方法对于生产使用应该是安全的. (6认同)
  • 不知道为什么这不是带绿色检查的那个.这非常有效,我猜想heroku会允许这一段时间它在技术上不会花费更多,因为端点实例处于休眠状态,而dns会将您带到正确的应用程序. (5认同)
  • Spundun - 对于www.example.com和example.com,您最好使用通配符证书并将其指向同一个heroku SSL端点.如果您打算使用两个不同的域(example.com和example2.com),那么是的,您将为每个单独的域支付20美元. (2认同)
  • 它与支付SSL端点附加组件一起工作正常.对于记录,它目前不适用于免费的Heroku SSL(Beta). (2认同)

den*_*try 6

最近,heroku为付费dynos,爱好和up添加了自动LetsEncrypt TLS证书.这将自动适用于任意数量的域和子域.仅当您不需要通配符子域时,此方法才有效.

Heroku的

此外,您可以使用certbot在多个域和子域中自行管理LE认证

certbot certonly --standalone -d example.com -d www.example.com -d test.net

您可以参考此heroku doc来上载自定义证书.


Dal*_*ark -4

我们有多个域名属于多家公司。SAN/UCC 证书仅适用于同一实体/公司/个人拥有的域名。我们在后台创建了一个 iFrame 作为快速修复,但此后我们已将平台转移到我们自己的基础设施中。