Бесплатный сертификат безопасности SSL на Heroku?

Я нажал Spree приложение Rails на Heroku, и я вижу его с помощью ssl с https:// и имеет желтый висячий замок в браузере. Нажав на это, вы увидите "Проверка подлинности" и информация о сертификате сообщает "Выпущено:".herokuapp.com

Это здорово. Без настройки или затрат на конец Heroku мое приложение использует SSL с действующим сертификатом. Хорошо, это желтый, а не зеленый замок, но эй, неплохо бесплатно.

Я уверен, что это глупый вопрос... но как я могу запустить другое приложение Rails на Heroku с подтвержденным сертификатом, не заплатив за добавление SSL и покупку собственного сертификата?

Ответ 1

Соединение TLS/SSL, установленное вашим браузером, связано с тем, что вы подключаетесь к своему приложению через appname.herokuapp.com. Это стандартно и автоматически будет работать для любого приложения, которое вы создаете из коробки. Heroku обеспечивает шифрование SSL, поскольку вы можете отправлять конфиденциальную информацию на сервер, и лучше использовать шифрование данных, которые вы, возможно, не считаете конфиденциальными, но ваш клиент может. Все авторитетные провайдеры (SAS, веб-хосты, поставщики электронной почты) будут иметь сертификат SSL wildcard, установленный в базовом домене (*.herokuapp.com), поскольку это единственный сертификат, который относительно недорог и обеспечит безопасность всех поддоменов автоматически.

При этом приложения уже включены в SSL, и к ним можно получить доступ просто с помощью https, например https://appname.herokuapp.com, но вы хотите пойти с SSL endpoint, когда вы хотите установить доверительные отношения с вашими клиентами. Оба способа безопасны, как и другие, но с подстановочным SSL (также называемым общим SSL-сертификатом) доверие устанавливается между клиентом через их браузер и Heroku, а не вашим App/Site. С SSL, подписанным на ваш домен .com, клиенты могут подключаться к вашему домену, а не к поддоку Heroku, и просматривать информацию о вашем сайте в информации о соединении в браузере. Если ваш сайт нуждается в устранении неоднозначности от Heroku, тогда вы захотите продолжить настройку SSL вне стандартного.

Что касается использования типа SSL и эмитента, я бы не рекомендовал https://www.startssl.com/, поскольку они не предлагают SSL с высокой верификацией браузера, поскольку они не полностью подписаны внешний корневой авторитет. Comodo и потребительский стандарт Rapid/GeoTrust - лучший выбор в плане обеспечения, признания и простоты использования и заинтересованности. Вам нужен только SSL (подтвержденный доменом), и они могут быть предоставлены для нескольких доменов в месяц.

Подробнее об этом и настройке SSL Heroku можно найти здесь

Ответ 2

Недавно я потратил некоторое время на это. Это можно сделать, используя CloudFront и прокси-сервер для Heroku. Это, вероятно, лучше всего подходит для небольших проектов, но, похоже, работает до сих пор! Смотрите мой пост здесь:

http://ksylvest.com/posts/2014-05-06/setup-free-ish-ssl-tls-on-heroku-for-ruby-on-rails-or-any-other-framework

Ответ 3

Несколько вещей изменились с момента первого ответа на этот вопрос, в частности, появление Let Encrypt и новых конечных точек SSL Heroku, которые вместе позволяют добавлять SSL бесплатно. Я создал камень для создания и добавления сертификатов автоматически: https://github.com/KMarshland/heroku-ssl. После того, как вы добавили heroku_ssl в свой gemfile, вы можете просто запустить:

rake heroku_ssl:update_certs

В качестве альтернативы, если вы не хотите использовать этот камень, вы можете выполнить эти задачи вручную:

1. Создание сертификата SSL

Следуйте инструкциям в https://github.com/unixcharles/acme-client для создания сертификатов. Вам нужно будет зарегистрировать свой адрес электронной почты, разрешить домен, а затем, наконец, получить свои сертификаты. При авторизации домена, если у вас только один сервер, вы можете просто вставить файл авторизации в свою общую папку; если нет, вам придется либо настроить выделенный контроллер и маршрут, либо добавить текстовую запись в ваш файл зоны DNS.

2. Добавьте сертификат в Heroku

После загрузки сертификатов вы можете использовать веб-интерфейс Heroku или просто запустить

heroku certs:update fullchain.pem privkey.pem

3. Настройте DNS

Вам необходимо установить запись CNAME в файле зоны DNS, который указывает на [yourdomain].herokudns.com. Файл зоны DNS указывает, какие URL-адреса сопоставляются с серверами вашего имени домена. Если ваш сайт уже указал на ваше приложение Heroku, будет уже запись CNAME; вам просто нужно изменить то, на что указывает. Если нет, вам нужно добавить новую строку:

[subdomain] [TTL] IN CNAME [yourdomain].herokudns.com.