Найти в Дзене

Как создать мульти доменный самоподписной сертификат OpenSSL в Windows.

Оглавление

Недавно для работы веб сервера 1С нам потребовалось создать сертификат, в котором было бы полное доменное имя сервера, его короткое имя и IP адрес. Это заметка о том, как создать приватный ключ и мульти доменный самоподписной сертификат с помощь пакета OpenSSL в среде Windows.

Установка OpenSSL на Windows.

  1. Перейдите на страницу загрузки OpenSSL для Windows: https://slproweb.com/products/Win32OpenSSL.html скачайте в зависимости от разрядности ОС необходимый инсталлятор версии Light и запустите его.
  2. Откройте Панель управления Windows -> Система -> Дополнительные параметры системы -> Переменные среды.
    В разделе Системные переменные выберите переменную Path и нажмите Изменить. В открывшемся окне нажмите Создать
    и введите путь к папке bin установленного пакета OpenSSL (C:\Program Files\OpenSSL-Win64\bin по умолчанию). Нажмите ОК.
  3. Создайте папку, куда вы будет сохранять созданные сертификат и приватный ключ (например, C:\cert).
  4. В папке C:\cert создайте конфигурационный файл (test.cnf) для последующего выпуска сертификата, следующего содержания:
    [req]
    distinguished_name = req_distinguished_name
    x509_extensions = v3_req
    prompt = no

    [req_distinguished_name]
    C = RU
    ST = Moscow
    L = Moscow
    O = MY COMPANY

    [v3_req]
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid,issuer
    basicConstraints = CA:TRUE
    subjectAltName = @alt_names

    [alt_names]
    DNS.1 = test.mycompany.ru
    DNS.2 = test
    IP.1 = 192.168.1.1

- в секции [req] описываются параметры, которые будут применятся при создании сертификата;
- в секции [alt_names] можно указать несколько доменных имен, а также один или несколько IP адресов.
Более подробную информацию о переменных конфигурационного файла вы можете найти на страницах документации проекта OpenSSL:
https://www.openssl.org/docs/

Создание приватного ключа и сертификата

  1. Откройте командную строку cmd и перейдите в созданную директорию:
    cd C:\cert
  2. Создайте приватный ключ командой:
    openssl genrsa -out test.key 2048
  3. Создайте сертификат, используя ранее созданные конфигурационный файл и файл приватного ключа:
    openssl req -new -x509 -sha256 -days 3650 -key test.key -out test.crt -config test.cnf

После этих операций у вас в папке C:\cert будут созданы файлы приватного ключа test.key и сертификата test.crt сроком на 10 лет, которые вы в дальнейшем можете использовать на вашем веб сервере.

Уже на следующий день после того как задача была решена, я решил поискать в интернете возможность создания сертификата онлайн. Сайтов предоставляющих такую возможность вполне достаточно, но на одном нет возможности выпуска сертификата для нескольких доменных имен, на другом нет возможности добавить IP адрес, на третьем можно лишь создать запрос на сертификат. Но мне все же удалось найти продвинутый ресурс, где можно выбрать шаблон по вашей задаче (веб сервер, Open VPN...) или загрузить сертификат со своего сайта в качестве шаблона, также на стартовой странице имеется ссылка на видео инструкцию. В общем, на этом сайте предоставлены широчайшие возможности по выпуску сертификата, рекомендую: https://certificatetools.com/