Несколько сертификатов SSL в одном приложении Heroku
Возможно ли иметь много сертификатов SSL в одном приложении Heroku?
У нас есть несколько доменных имен разных типов и TLD, указывающих на наше приложение и нуждающихся в защите каждого имени домена. Предпочтительно, не перенаправляя другой защищенный URL.
Ответы
Ответ 1
У нас есть несколько доменных имен, принадлежащих нескольким компаниям. Сертификат SAN/UCC доступен только для доменных имен, принадлежащих одному и тому же лицу/компании/физическому лицу. Мы создали iFrame в фоновом режиме в качестве быстрого исправления, но с тех пор мы переместили нашу платформу в нашу собственную инфраструктуру.
Ответ 2
Существует несколько способов маршрутизации трафика нескольких конечных точек SSL в одно и то же приложение.
Конечная точка SSL работает, завершая соединение SSL и вводя незашифрованный трафик обратно в нормальный уровень маршрутизации Heroku.
Вы можете воспользоваться этим, создав новое приложение с новой конечной точкой SSL для прекращения соединения SSL и маршрутизации трафика в существующее приложение:
-
Добавьте свое доменное имя в свое приложение:
$ heroku domains:add ssl.example.com
-
Создайте новое приложение:
$ heroku create endpoint-for-example-com
-
Добавьте добавление конечной точки SSL ($ 20/mo):
$ heroku addons:create ssl:endpoint --app endpoint-for-example-com
-
Добавьте свой сертификат в новое приложение:
$ 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
-
Используйте конечную точку ssl, назначенную вашему новому приложению (например, kagawa-1482.herokussl.example.com
) в качестве узла CNAME для имени домена, которое вы хотите защитить. Обычно это делается в конфигурации DNS вашего домена.
Новое приложение не нуждается в каких-либо динамиках, но плата за добавление конечной точки SSL будет составлять 20 долларов США в месяц.
Примечания:
-
Это решение не документировано Heroku, поэтому возможно, что они
удалит или изменит это поведение в будущем. Героку подтвердили, что это безопасно для использования в производстве.
- Обязательно создайте конечные точки в том же регионе, что и основное приложение.
- Может потребоваться некоторое время, чтобы изменения DNS вступили в силу.
Ответ 3
Недавно геройку добавили автоматические сертификаты LetsEncrypt TLS для платных динов, хобби и до. Это будет работать через любое количество доменов и поддоменов автоматически. Этот метод работает только в том случае, если вам не нужны поддомены подстановочных знаков.
![heroku]()
Кроме того, вы можете управлять сертификацией LE самостоятельно через несколько доменов и поддоменов, certbot
certbot certonly --standalone -d example.com -d www.example.com -d test.net
Вы можете обратиться к этому heroku doc для загрузки пользовательских сертификатов.
Ответ 4
Хотя это не то же самое, что и вопрос OP, я смог добиться этого на Heroku с единственным сертификатом SAN (Subject Alternative Name) около 25 долларов США в год.
Я создал CSR с несколькими альтернативными именами объектов (subjectAltName
) в OSX:
-
Копирование /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
-
Затем я использовал этот новый .cnf при создании CSR:
openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr -config openssl.cnf
-
Я приобрел сертификат с SSLs.com. Их Comodo "PositiveSSL Multi-Domain" составляет 25,99 долл. США в год на момент написания этой статьи и поддерживает от 3 до 100 доменов (домены более 3 стоят примерно как 12 долл.).
-
Я объединил пакет CA и .crt, что я был отправлен в один .crt(в указанном порядке) и добавил его в Heroku. Все 3 домены были добавлены в приложение и указали на тот же CNAME, и все разрешены по https://как ожидалось.
Намного дешевле, чем $240/год для дополнительной конечной точки, если это жизнеспособный маршрут для всех, кто интересуется.
Соответствующие ссылки:
Ответ 5
Я имею дело с этим сам. Heroku предлагает получить сертификат SAN/UCC, который позволяет вам перечислить несколько доменов. Просто сделал это с GoDaddy, и он работает нормально до сих пор.
https://devcenter.heroku.com/articles/ssl-endpoint#serving-multiple-domains