Назад | Перейти на главную страницу

Https-версия веб-приложения не работает, но http есть?

Я использую Heroku в качестве хоста, что дает мне приятный https: адрес:

https://some_random_string.herokuapp.com/

Я использую Namecheap для настройки своего DNS и делаю это с помощью:

CNAME Record | www | www.my_domain.herokudns.com.

Я нашел эту информацию, используя heroku domains в консоли macOS bash.

www.my_domain | CNAME | www.my_domain.herokudns.com

Все работает нормально кроме s сбрасывается с адреса Heroku, когда я использую свой собственный домен.

Согласно Heroku Dev Center Пользовательские доменные имена для приложений есть другой шаблон для имен хостов TLS:

Если вы используете Конечная точка SSL, обратите внимание, что ваши цели DNS будут немного другими. Для приложений в Common Runtime доменное имя конечной точки будет иметь имя в форме example-12345.ssl.herokudns.com.

Хотя каждое приложение может обслуживаться по HTTPS со значением по умолчанию *.herokuapp.com имя хоста, для использования вашего собственного домена требуется соответствующий сертификат TLS. Шаги по использованию собственных сертификатов в ваших приложениях описаны в Конечная точка SSL документация. Коротко:

  1. Сгенерировать закрытый ключ и запрос на подпись сертификата CSR с OpenSSL:

    openssl genrsa -des3 -out server.pass.key 2048
    openssl rsa -in server.pass.key -out server.key
    openssl req -nodes -new -key server.key -out server.csr
    
  2. Купите сертификат с помощью CSR.

  3. Создайте надстройку и добавьте свой сертификат:

    heroku addons:create ssl:endpoint
    heroku certs:add server.crt server.key --type endpoint
    

Немного странно, что Heroku предоставляет https:// адрес, но не позволяет вам перенаправить на него.

Вы можете связаться с их службой поддержки и спросить, как правильно настроить CNAME, чтобы вы могли использовать сертификат, который они уже создали для вас.

Меняется ...

www.my_domain | CNAME | www.my_domain.herokudns.com

является ключом к решению этой проблемы.