Настройка HTTPS
Если бакет используется для хостинга статического сайта, то для доступа к сайту по протоколу HTTPS необходимо загрузить собственный сертификат безопасности и соответствующий ему секретный ключ.
Object Storage поддерживает только PEM
Примечание
Доступ к бакету по HTTPS открывается в течение получаса после загрузки сертификата.
Переадресация запросов с HTTP на HTTPS включается автоматически после настройки доступа к бакету по HTTPS. Дополнительных настроек для такой переадресации не требуется.
Выбор сертификата из Certificate Manager
-
В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. -
На панели слева выберите
Безопасность. -
Выберите вкладку HTTPS.
-
Нажмите кнопку Настроить.
-
В поле Источник выберите Certificate Manager.
-
В поле Сертификат выберите сертификат в появившемся списке.
Примечание
Если у вас еще нет ни одного сертификата в Yandex Certificate Manager, нажмите кнопку Перейти в Certificate Manager и воспользуйтесь инструкцией, чтобы создать свой первый сертификат.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для редактирования ACL бакета:
yc storage bucket update --help
-
Выполните следующую команду:
yc storage bucket set-https --name <имя_бакета> --certificate-id <идентификатор_сертификата>
Где:
--name
— имя бакета, для которого настраивается HTTPS;--certificate-id
— идентификатор сертификата в Certificate Manager.
Результат:
source_type: SOURCE_TYPE_MANAGED_BY_CERTIFICATE_MANAGER certificate_id: fpqe2g0hfr0e********
Примечание
Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin
, на каталог, в котором будут создаваться ресурсы.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы выбрать сертификат из Certificate Manager:
-
Откройте файл конфигурации Terraform и добавьте блок
https
в описание бакета:... resource "yandex_storage_bucket" "b" { bucket = "my-policy-bucket" https { certificate_id = "<идентификатор_сертификата>" } } ...
Где:
certificate_id
— идентификатор сертификата в Certificate Manager, который будет использован для бакета.
Более подробную информацию о параметрах ресурса
yandex_storage_bucket
в Terraform см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить выбранный сертификат можно в консоли управления
.
Чтобы выбрать сертификат из Certificate Manager, воспользуйтесь методом REST API setHTTPSConfig для ресурса Bucket или вызовом gRPC API BucketService/SetHTTPSConfig.
Загрузка собственного сертификата безопасности
Собственный сертификат лучше загружать с помощью сервиса Certificate Manager.
Если вы загружаете цепочку сертификатов, она должна начинаться с доменного и заканчиваться корневым сертификатом. Можно создать файл с цепочкой с помощью команды:
cat domain.pem intermediate.pem rootca.pem > bundle.pem
Здесь domain.pem
— доменный сертификат, intermediate.pem
— промежуточный сертификат, rootca.pem
— корневой сертификат, bundle.pem
— итоговая цепочка.
Чтобы загрузить сертификат:
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. - На панели слева выберите
Безопасность. - Выберите вкладку HTTPS.
- Нажмите кнопку Настроить.
- В поле Источник выберите Свой сертификат.
- Добавьте Сертификат и Секретный ключ.
- Нажмите кнопку Сохранить.
Чтобы загрузить собственный сертификат безопасности, воспользуйтесь методом REST API setHTTPSConfig для ресурса Bucket или вызовом gRPC API BucketService/SetHTTPSConfig.
Примечание
Из бакета с публичным доступом файлы можно получить по публичной ссылке как по протоколу HTTP, так и по протоколу HTTPS, даже если для бакета не настроен хостинг веб-сайта. В этом случае для доступа по протоколу HTTPS будет использован сертификат от GlobalSign