Свой домен для Yandex.Cloud Object Storage
Как привязать свой домен к бакету в объектном хранилище Yandex.Cloud.
Для начала нам потребуется домен третьего уровня. Я возьму media.nikolaymatrosov.ru
.
UPD 2022–10: В Cloud DNS появилась возможность создавать ANAME записи. А значит, вы можете использовать домен второго уровня.
Почему раньше нужен был домен именно третьего уровня? Потому что для него возможно настроить CNAME
DNS-запись, указывающую на URL. Для поддержки же доменов второго уровня необходима A
указывающая на ip-адрес. Надежного решения без контроля ip-адреса сделать нельзя было, так как ip-адрес Object Storage может измениться и вы об этом узнаете только когда упадет ваш сайт.
Именно эту проблему решает ANAME
запись. Она указывает на другой домен, но для внешних пользователей это выглядит как будто для домена задана A-запись, так как DNS возвращает IP-адрес.
Выпуск сертификата
Создаем сертификат
Далее нам нужно прописать указанные значения у своего DNS-регистратора.
UPD 2022–10: Для использования ANAME-записи вам необходимо делегировать домен на name server’а Облака и уже там создать её. Соответственно и прописывать значения вы будете в интерфейсе Облака.
Теперь ждем пока сертификат будет выпущен.
Заводим домен
Для этого во вкладке Certificate Manager нажимаем кнопку создать и заполняем форму. В выпадающем списке выбираем только что созданный сертификат.
Создаем бакет
В Object Storage заводим бакет с именем совпадающим с нашим доменом.
После того как бакет создан, переходим во вкладку Веб-сайт. Там выбираем «Хостинг» и заполняем форму. У нас есть возможность указать главную страницу и страницу ошибки. Это должны быть объекты в этом бакете, которые буду отдаваться в соответствующих случаях. Через CLI можно настроить политику редиректов более гибко, например можно будет перенаправлять в случае 404 ошибки не на объект в бакете, а на функцию. Прочитать об этом можно в этом посте.
Теперь можно настроить доступ по HTTPS. Для этого нам пригодится уже созданный сертификат.
Выбираем сертификат для нашего бакета.
Остается только прописать у DNS-регистратора CNAME
запись, которая будет указывать с нашего домена media.nikolaymatrosov.ru
на технический домен media.nikolaymatrosov.ru.website.yandexcloud.net.
выданный на Object Storage.
Готово.
Чтобы убедиться, что все работает, загрузим тестовый текстовый файл в объектное хранилище.
И вот он доступен по адресу https://media.nikolaymatrosov.ru/test.txt