Я использую 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 документация. Коротко:
Сгенерировать закрытый ключ и запрос на подпись сертификата 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
Купите сертификат с помощью CSR.
Создайте надстройку и добавьте свой сертификат:
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
является ключом к решению этой проблемы.