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

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

image2.png

Что такое PKCS12-файл
Как создать PKCS12-файл
      1. Подготовьте файлы сертификата
      2. Объедините файлы сертификата в PKCS12
      3. Закодируте результат в base64
Как создать Балансировщик нагрузки с HTTPS-слушателем
 

Что такое PKCS12-файл

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

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

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

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

Как создать PKCS12-файл

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

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

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

  1. Скачайте корневой и промежуточный сертификаты на сайте CA, который выдал вам сертификат.
  2. Создайте файл в любом текстовом редакторе.
  3. В созданный файл поместите содержимое сертификатов в последовательности: корневой сертификат, затем сертификаты посредников по порядку, в конце сертификат для домена. Вот так: 
    • Содержимое корневого сертификата (например, CARoot.crt)
    • Содержимое сертификата посредника №1 (например, Intermediate1.crt)
    • Содержимое сертификата посредника №2 (например, Intermediate2.crt)
    • Содержимое сертификата для домена (например, domain.crt)

2. Объедините файлы сертификата в PKCS12

Теперь у вас на руках все нужные файлы. Объединить их в формат 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

Для файла .p7b или .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.

3. Закодируте результат в base64

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

      Для ОС Windows 

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

Если путь к вашему файлу — «C:UsersMynameserver.p12» и вы хотите назвать новый файл «code64», то команда будет такой: certutil.exe -encode C:UsersMynameserver.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.

Как создать Балансировщик нагрузки с HTTPS-слушателем

  1. Добавьте содержимое файла PKCS12 в base64 кодировке в качестве секрета.

    image2.pngimage3.png

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

    image4.pngimage1.png

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

Была ли статья полезна?
Недавно просмотренные статьи