Top.Mail.Ru

Облако

Загрузить PKCS12-файл для создания HTTPS-слушателя

Управление секретами — это раздел, куда можно загрузить PKCS12-файлы (в системе называются секретами). Они нужны для создания балансировщиков нагрузки с HTTPS-слушателями.

Загрузить PKCS12-файл для создания HTTPS-слушателя

PKCS12 (Public-Key Cryptography Standards) — это двоичный формат для хранения SSL/TLS-сертификата, цепочки сертификатов и закрытого ключа в одном зашифрованном файле.

По сути, в файл формата PKCS12 вы «складываете» основной SSL/TLS-сертификат, цепочку сертификатов и закрытый ключ, чтобы их было удобно передать. Каждый элемент важен для создания HTTPS-соединения:

  • Основной сертификат — это цифровая подпись сайта, которая подтверждает, что ресурс на самом деле принадлежит вам, а не мошенникам, которые выдают себя за вас.

  • Цепочка сертификатов — это информация о CA (certificate authority — удостоверяющих центрах), которые участвовали в выпуске вашего сертификата и подтверждают его подлинность.

  • Закрытый ключ — это уникальный набор букв и цифр (ключ), им криптографический алгоритм будет шифровать все данные, которыми ресурс обменивается с пользователем.

Получив PKCS12-файл, наша система сможет открыть HTTPS-соединение. Вам нужно только упаковать связанные с сертификатом файлы в формат PKCS12 в кодировке base64 (эту кодировку понимает система) и загрузить в раздел Управление секретами.

Вам понадобятся основной SSL/TLS-сертификат для домена, цепочка сертификатов и закрытый ключ. Для домена должна быть настроена DNS A-запись с виртуальным IP-адресом балансировщика нагрузки (IP указан в разделе Сеть Балансировщики нагрузки). Ваш домен будет направлять запросы на IP балансировщика, а тот распределит их между машинами. 

CA не всегда присылает клиенту цепочку сертификатов вместе с основным сертификатом — иногда отправляет только основной, потому что зачастую браузерам достаточно его для подтверждения доменного имени. В этом случае вы можете получить цепочку сертификатов сами:

1. Скачайте корневой и промежуточный сертификаты на сайте CA, который выдал вам сертификат.

2. Создайте файл в любом текстовом редакторе.

3. В созданный файл поместите содержимое сертификатов в последовательности: корневой сертификат, затем сертификаты посредников по порядку, в конце сертификат для домена. Вот так: 

  • содержимое корневого сертификата (например, CARoot.crt);

  • содержимое сертификата посредника №1 (например, Intermediate1.crt);

  • содержимое сертификата посредника №2 (например, Intermediate2.crt);

  • содержимое сертификата для домена (например, domain.crt).

Теперь у вас на руках все нужные файлы. Объединить их в формат PKCS12 можно разными способами. Ниже описываем частый кейс — создание PKCS12 из PEM-файлов:

1. Установите OpenSSL. Это библиотека, содержащая инструменты для работы с SSL/TLS протоколами. Ссылки для установки и инструкции по работе с OpenSSL можно найти на официальном сайте.

2. Проверьте, соответствуют ли ваши файлы сертификата формату PEM. Такие файлы должны иметь расширение PEM, CRT, CER либо KEY, начинаться со строки «----- BEGIN CERTIFICATE -----» и заканчиваться строкой «----- END CERTIFICATE -----». Чтобы увидеть начало и конец файла, откройте его в текстовом редакторе.

3. Если какие-то файлы не в PEM, преобразуйте их с помощью OpenSSL. Введите в OpenSSL нужную команду, указав вместо текста в квадратных скобках свои названия:

Для файла CRT, CER или DER

openssl x509 -inform der -in [название вашего файла, включая расширение]-out [название для создаваемого PEM-файла].pem

Если ваш файл называется example.der и новому PEM-файлу вы хотите дать имя PEMcertificate, то команда будет такой:

openssl x509 -inform der -in example.der -out PEMcertificate.pem

Для файла PBP или P7C

openssl pkcs7 -print_certs -in [название вашего файла, включая расширение] -out [название для создаваемого PEM-файла].cer

Если ваш файл называется example.pb7 и новому PEM-файлу вы хотите дать имя PEMcertificate, то команда будет такой:

openssl pkcs7 -print_certs -in example.pb7 -out PEMcertificate.cer

4. Поместите основной сертификат, ключ и цепочку промежуточных сертификатов (всего три файла в формате PEM) в текущую директорию.

5. Чтобы объединить файлы в PKCS12, откройте OpenSSL и введите команду:

openssl pkcs12 -export -inkey [название файла с закрытым ключом, включая расширение] -in [название файла с сертификатом, включая расширение] -certfile [название файла с цепочкой сертификатов, включая расширение] -passout pass: -out [ваше название для создаваемого файла].p12

Если ваши файлы — server.crt (основной сертификат), server.key (закрытый ключ) и ca-chain.crt (цепочка сертификатов), а новый PKCS12-файл вы хотите назвать server, то команда будет такой:

openssl pkcs12 -export -inkey server.key -in server.crt -certfile ca-chain.crt -passout pass: -out server.p12

В результате вы объедините ключ, сертификат и промежуточную цепочку сертификатов в один файл PKCS12. 

Закодируйте содержимое PKCS12-файла в base64. Это можно сделать, введя в консоли нужную команду:

Для ОС Windows 

certutil.exe -encode [полный путь к PKCS12-файлу] [название нового файла].b64

Если путь к вашему файлу — C:\Users\Myname\server.p12 и вы хотите назвать новый файл code64, то команда будет такой:

certutil.exe -encode C:\Users\Myname\server.p12 code64.b64

Будет создан новый файл в кодировке base64. Откройте его в текстовом редакторе и удалите первую и последнюю строчки: «-----BEGIN CERTIFICATE-----» и «-----END CERTIFICATE-----». Они генерируются автоматически и не нужны вам. Оставшийся текст и будет содержанием секрета.

Для Mac OS

openssl base64 -in [полный путь к PKCS12-файлу] -out [название нового файла].txt

Если путь к вашему файлу — Users/admin/Downloads/server.p12 и вы хотите назвать новый файл code64, то команда будет такой:

openssl base64 -in Users/admin/Downloads/server.p12 -out code64.txt

Будет создан новый файл TXT с содержанием PKCS12-файла, закодированным в base64. Это и есть содержание секрета.

Для Linux (выполняется в директории, где лежит PKCS-12 файл)

base64 [название PKCS12-файла] > [название нового файла]

Если ваш файл называется server.p12 и вы хотите назвать новый файл code64, то команда будет такой:

base64 server.p12 > code64

Будет создан новый файл code64 с содержанием PKCS12-файла, закодированным в base64. Это и есть содержание секрета. Файл можно открыть с помощью команды nano code64.

1. Добавьте содержимое файла PKCS12 в base64 кодировке в качестве секрета. Для этого перейдите в раздел Управление секретами и нажмите Создать секрет. В появившемся окне задайте имя секрета, активируйте настройку Загрузить как PKCS12 файл, вставьте содержимое секрета в поле Содержимое и нажмите Сохранить.

Загрузить PKCS12-файл для создания HTTPS-слушателя

2. При создании или редактировании балансировщика нагрузки нажмите Добавить слушатель. В открывшемся окне введите имя нового слушателя, выберите протокол Terminated HTTPS, укажите нужный порт и выберите созданный ранее секрет. Введите разрешённые CIDR и нажмите Создать слушатель.

Загрузить PKCS12-файл для создания HTTPS-слушателя

3. Слушатель будет создан.

Мы используем cookie, чтобы сайт стал лучше для вас.