bg-tutorials

Как установить SSL-сертификат на Google Cloud Platform

Этот учебник объясняет как установить SSL-сертификат на Google Cloud Platform с использованием Certificate Manager. Вы также узнаете, как сгенерировать CSR (Certificate Signing Request) для Google Cloud и как развернуть сертификат на HTTPS-балансировщике нагрузки.

Сгенерируйте код CSR на Google Cloud Platform

Вы не можете заказать SSL-сертификат без кода CSR. CSR означает Certificate Signing Request — блок закодированного текста, содержащий данные заявителя. Центр сертификации использует CSR для проверки вашего домена и организации перед выдачей сертификата.

Google Cloud не имеет встроенной формы, которая создает CSR за вас, поэтому вы генерируете CSR и его приватный ключ с помощью OpenSSL на своей машине. У вас есть два варианта:

Храните приватный ключ в безопасности. Он вам снова понадобится, когда вы будете загружать сертификат в Certificate Manager. Отправьте CSR в Центр сертификации при оформлении заказа, а после выдачи сертификата продолжайте установку, описанную ниже.

Установка SSL-сертификата на Google Cloud Platform

В Google Cloud сторонний (самостоятельно предоставленный) сертификат называется самоуправляемым сертификатом. Вы загружаете его в Certificate Manager, а затем развертываете на HTTPS-балансировщике нагрузки. Перед началом убедитесь, что у вас есть:

  • Ваши подписанные файлы сертификата от Центра сертификации.
  • Приватный ключ, сгенерированный вместе с CSR.
  • Доступ к консоли Google Cloud и интерфейсу командной строки gcloud.
  • Существующий HTTPS-балансировщик нагрузки (внешний Application Load Balancer с целевым HTTPS-прокси), который обслуживает ваш домен. Сертификат подключается именно к этому балансировщику нагрузки.

Шаг 1: Подготовьте файлы сертификата

После того как Центр сертификации проверит ваш запрос, он отправит вам по электронной почте ZIP-архив. Распакуйте его и найдите:

  • yourdomain.crt — ваш серверный сертификат.
  • yourdomain.ca-bundle — промежуточные сертификаты.
  • yourdomain.key — приватный ключ, созданный вместе с CSR.

Шаг 2: Объедините сертификат и цепочку

Certificate Manager ожидает один PEM-файл, содержащий сначала ваш серверный сертификат, а затем промежуточные сертификаты, именно в таком порядке. Откройте терминал в папке, где хранятся ваши файлы, и выполните:

cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt

Это создает файл в формате PEM с вашим сертификатом и промежуточной цепочкой в правильном порядке. Файл сертификата должен начинаться с ——BEGIN CERTIFICATE—— и заканчиваться ——END CERTIFICATE——.

Теперь проверьте приватный ключ. Certificate Manager требует, чтобы он был:

  • в формате PEM и незашифрованным (без парольной фразы);
  • в форме PKCS#8, то есть начинаться с ——BEGIN PRIVATE KEY——, а не с ——BEGIN RSA PRIVATE KEY——;
  • RSA (2048, 3072 или 4096 бит) или ECDSA (P-256 или P-384).

Если ваш ключ начинается с ——BEGIN RSA PRIVATE KEY—— (PKCS#1), преобразуйте его в форму PKCS#8, которую принимает Certificate Manager:

openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key

Используйте полученный файл yourdomain_pkcs8.key на следующих этапах загрузки. Если ваш ключ защищен парольной фразой, эта команда также запросит у вас пароль и создаст незашифрованную копию.

Шаг 3: Загрузите сертификат в Certificate Manager

Вы можете загрузить самоуправляемый сертификат через консоль или с помощью gcloud. Используйте тот способ, который вам удобнее — результат будет одним и тем же ресурсом Certificate Manager.

Вариант A: консоль Google Cloud

  1. Войдите в консоль Google Cloud и выберите ваш проект.
  2. Откройте Certificate Manager (в разделе Security, в области Network Security), затем выберите вкладку Certificates.
  3. Выберите Add Certificate.
  4. Дайте сертификату название, затем для типа сертификата выберите Create self-managed certificate.
  5. Для местоположения выберите Global с областью Default для глобального балансировщика нагрузки, либо Regional и ваш регион для регионального балансировщика нагрузки.
  6. Загрузите fullchain.crt в качестве сертификата и ваш приватный ключ PKCS#8 в качестве приватного ключа, затем выберите Create.

Вариант B: интерфейс командной строки gcloud. Создайте тот же сертификат одной командой. Замените MY_CERT на название по вашему выбору:

gcloud certificate-manager certificates create MY_CERT 
  --certificate-file=fullchain.crt 
  --private-key-file=yourdomain_pkcs8.key

В любом случае теперь сертификат хранится в Certificate Manager, но еще не подключен к какому-либо трафику. Следующий шаг — его развертывание.

Шаг 4: Разверните сертификат на балансировщике нагрузки

Certificate Manager развертывает сертификат через карту сертификатов (certificate map). Вы создаете карту, добавляете запись, которая связывает имя хоста с вашим сертификатом, а затем присоединяете карту к целевому HTTPS-прокси вашего балансировщика нагрузки. Выполните эти команды с помощью gcloud.

Создайте карту сертификатов:

gcloud certificate-manager maps create MY_MAP

Добавьте запись карты для вашего имени хоста. Замените MY_CERT на название загруженного сертификата, а yourdomain.com — на домен, который вы хотите защитить:

gcloud certificate-manager maps entries create my-entry 
  --map=MY_MAP 
  --certificates=MY_CERT 
  --hostname=yourdomain.com

Присоедините карту к вашему существующему целевому HTTPS-прокси. Замените MY_PROXY на название прокси, который обслуживает ваш балансировщик нагрузки:

gcloud compute target-https-proxies update MY_PROXY 
  --certificate-map=MY_MAP 
  --global

Уберите флаг --global и добавьте --region=YOUR_REGION, если ваш балансировщик нагрузки региональный. Теперь балансировщик нагрузки предоставляет ваш сертификат для входящего HTTPS-трафика на этот хост. Изменения сертификата могут распространяться по балансировщику нагрузки в течение нескольких минут.

Проверьте установку SSL

После развертывания сертификата убедитесь, что балансировщик нагрузки предоставляет его корректно и что цепочка полная. С любой машины с OpenSSL подключитесь к вашему домену и прочитайте возвращаемый им сертификат:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

Это выводит издателя, субъекта и даты действия сертификата, который сейчас используется. Для получения полного отчета о сертификате и его конфигурации, включая проверку цепочки и протокола, проверьте ваш домен с помощью нашего SSL Checker, либо откройте сайт в браузере и проверьте значок замка.

Часто задаваемые вопросы

Можно ли сгенерировать CSR напрямую в Google Cloud?

Нет. В Google Cloud нет формы в консоли, которая генерирует CSR или приватный ключ для самоуправляемого сертификата. Вы создаете CSR и ключ с помощью OpenSSL на своей машине (или с помощью нашего генератора CSR), заказываете сертификат, а затем загружаете выданный сертификат и приватный ключ в Certificate Manager.

В чем разница между самоуправляемым и управляемым Google сертификатом?

Самоуправляемый сертификат — это сертификат, который вы получаете от Центра сертификации и загружаете самостоятельно, и вы отвечаете за его продление. Управляемый Google сертификат предоставляется и продлевается автоматически компанией Google. Это руководство посвящено самоуправляемым сертификатам — именно этот путь вы используете для платного сертификата от SSL Dragon.

Почему Certificate Manager отклоняет мой приватный ключ?

Наиболее распространенная причина — формат ключа. Certificate Manager требует незашифрованный ключ PKCS#8, который начинается с ——BEGIN PRIVATE KEY——. Если ваш ключ начинается с ——BEGIN RSA PRIVATE KEY—— или защищен парольной фразой, преобразуйте его с помощью команды openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key и загрузите преобразованный файл.

Я загрузил сертификат, но сайт по-прежнему показывает «не защищено». Почему?

Загрузка сертификата в Certificate Manager лишь сохраняет его. Он не обслуживает трафик, пока вы не развернете его. Создайте карту сертификатов, добавьте запись карты для вашего имени хоста и присоедините карту к целевому HTTPS-прокси вашего балансировщика нагрузки (Шаг 4). Пока карта не присоединена, балансировщик нагрузки не предоставляет ваш сертификат.

В каком порядке должен быть файл сертификата?

Ваш серверный (конечный) сертификат идет первым, затем следуют промежуточные сертификаты — все в одном PEM-файле. Команда cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt создает именно такой порядок. Отсутствующая или неправильно упорядоченная цепочка — частая причина того, что браузеры и SSL-чекеры сообщают о неполном пути сертификата.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.