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

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

我们有多个不同types的域名,顶级域名指向我们的应用程序,并需要保护每个域名。 最好不要redirect到不同的安全URL。

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

SSL端点通过终止SSL连接并将未encryption的stream量注入到普通的Heroku路由层中来工作。

您可以通过创build一个新的SSL端点的应用程序来终止SSL连接并将stream量路由到您现有的应用程序,从而充分利用此优势:

  1. 添加您的域名到您的应用程序:

    $ heroku domains:add ssl.example.com

  2. 创build一个新应用程序:

    $ 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 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 
  5. 使用分配给您的新应用(例如kagawa-1482.herokussl.example.com )的ssl端点作为您希望保护的域名的CNAME主机。 这通常在您的域名的DNSconfiguration中完成。

新的应用程序不需要任何dynos,但是对于SSL端点附件,将会收取20美元/月的费用。

笔记:

  • Heroku没有logging这个解决scheme,因此他们可能会在将来删除或改变这种行为。 Heroku已经证实,这是安全的生产使用。
  • 请务必在与您的主应用程序相同的区域创build您的端点。
  • 您的DNS更改可能需要一段时间才能生效。

最近heroku已经添加了自动LetsEncrypt TLS证书付费dynos,嗜好和up。 这将自动跨越任意数量的域和子域。 此方法仅适用于不需要通配符子域的情况。

Heroku的

另外,您可以使用certbot跨越多个域和子域来pipe理LEauthentication

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

您可以参考这个heroku文档上传自定义证书。

虽然与OP的问题不完全相同,但是我能够在Heroku上以一个单一的SAN(主题替代名称)证书在$ 25 /年左右达到这个目标。

我在OSX中用多个主题替代名称( subjectAltName )生成了一个CSR:

  1. /System/Library/OpenSSL/openssl.cnf复制到当前目录,并修改相关部分( [req][v3_req] ):

     [req] req_extensions = v3_req [v3_req] subjectAltName=DNS:www.example1.com,DNS:www.example2.com,DNS:www.example3.com 
  2. 然后我在生成CSR时使用了这个新的.cnf文件:

     openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr -config openssl.cnf 
  3. 我从SSLs.com购买了证书。 他们的Comodo“PositiveSSL Multi-Domain”在撰写本文时为25.99美元/年,支持3-100个域名(域名超过3个,成本大约为12美元)。

  4. 我将CA bundle和.crt连接成一个.crt(按照这个顺序),并将其添加到Heroku中。 所有3个域都被添加到应用程序中,并指向相同的CNAME,并按照预期通过https://parsing。

如果对于任何感兴趣的人来说这是一条可行的路线,那么额外的端点要比$ 240 /年便宜得多。

相关链接:

我正在处理这个问题。 Herokubuild议获得SAN / UCC证书,该证书允许您列出多个域。 只是做了与GoDaddy,它到目前为止工作得很好。

https://devcenter.heroku.com/articles/ssl-endpoint#serving-multiple-domains

我们有多个域名属于多个公司。 SAN / UCC证书仅适用于同一实体/公司/个人拥有的域名。 我们在后台创build了一个快速修复的iFrame,但是我们之后将平台移到了我们自己的基础架构中。