Этот учебник объясняет как установить 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 на своей машине. У вас есть два варианта:
- Сгенерировать CSR автоматически с помощью нашего генератора CSR.
- Следовать нашему пошаговому руководству о том, как создать CSR на Google Cloud Platform.
Храните приватный ключ в безопасности. Он вам снова понадобится, когда вы будете загружать сертификат в 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
- Войдите в консоль Google Cloud и выберите ваш проект.
- Откройте Certificate Manager (в разделе Security, в области Network Security), затем выберите вкладку Certificates.
- Выберите Add Certificate.
- Дайте сертификату название, затем для типа сертификата выберите Create self-managed certificate.
- Для местоположения выберите Global с областью Default для глобального балансировщика нагрузки, либо Regional и ваш регион для регионального балансировщика нагрузки.
- Загрузите 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, либо откройте сайт в браузере и проверьте значок замка.
Часто задаваемые вопросы
Нет. В Google Cloud нет формы в консоли, которая генерирует CSR или приватный ключ для самоуправляемого сертификата. Вы создаете CSR и ключ с помощью OpenSSL на своей машине (или с помощью нашего генератора CSR), заказываете сертификат, а затем загружаете выданный сертификат и приватный ключ в Certificate Manager.
Самоуправляемый сертификат — это сертификат, который вы получаете от Центра сертификации и загружаете самостоятельно, и вы отвечаете за его продление. Управляемый Google сертификат предоставляется и продлевается автоматически компанией Google. Это руководство посвящено самоуправляемым сертификатам — именно этот путь вы используете для платного сертификата от SSL Dragon.
Наиболее распространенная причина — формат ключа. 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


