Сертификаты:Создание сертификатов средствами OpenSSL

Материал из MikroTik WiKi rus
Перейти к: навигация, поиск
Icon-warn.png

Предупреждение: Этот способ подходит для SSTP и OpenVPN. Для IPSec тестирование не проводилось.


В этой статье мы рассмотрим создание сертификатов с помощью утилиты OpenSSL, которая идет в комплекте с OpenVPN.

  • Скачать пакет для установки: https://openvpn.net/index.php/download/community-downloads.html .
  • Если вы хотите установить OpenVPN только для создания самоподписанных сертификатов, то надо выбрать только те пункты, которые отмечены на скриншоте выше. Если же вам нужен будет и сам OpenVPN, то отмечайте все пункты.

Создание самоподписанного сертификата с помощью OpenSSL, шаг-1


  • Рекомендуется скопировать папку, например, в easy-rsa-copy.
  • Переходим в эту папку, там есть файл Readme в котором описано всё что нужно сделать, т. е. то, что описано ниже.
  • Запустить командную строку от имени администратора и перейти в директорию: cd "C:\Program Files\OpenVPN\easy-rsa".
  • Выполнить команду: init-config.bat . В результате должен будет появиться файл vars.bat.
  • Редактируем vars.bat. Эти изменения не являются обязательными.
set KEY_COUNTRY=RU
set KEY_PROVINCE=MoscowRegion
set KEY_CITY=Moscow
set KEY_ORG=n/a
set KEY_EMAIL=n/a
set KEY_CN=changeme
set KEY_NAME=changeme
set KEY_OU=n/a
set PKCS11_MODULE_PATH=n/a
set PKCS11_PIN=1234
  • Выполнить команду: vars.
  • Выполнить команду: clean-all. В результате должна будет появиться директория “keys”. А результат выдачи командной строки выглядеть, как на скриншоте.br />

Создание самоподписанного сертификата с помощью OpenSSL, шаг-2


  • Создание основного сертификата: build-ca. Набираем, отвечаем на вопросы. На всех вопросах жмем Enter, кроме “Common Name” и “Name”. В этих полях вводим ca.br />

Создание самоподписанного сертификата с помощью OpenSSL, шаг-3


  • создание ключа Диффи-Хеллмана: build-dh.
  • Создаем сертификат сервера: build-key-server server. Поле Common Name должно быть уникальным и не совпадать ни с одним другим сертификатом.
Icon-note.png

Примечание: Если сертификаты будут использоваться для SSTP, то в качестве параметра “common-name” сертификата сервера обязательно должен быть указан либо его IP-адрес, либо привязанное к этому адресу доменное имя.


При этом подключение от Windows-клиента пройдет только от того, что указано в параметре “common-name”. Набираем, отвечаем на вопросы. На всех вопросах жмем Enter, кроме “Common Name” и “Name”. В этих полях вводим server. На два вопроса в конце отвечаем “y”.
Создание самоподписанного сертификата с помощью OpenSSL, шаг-4


  • Создаем сертификат клиента: build-key client1. Поле Common Name должно быть уникальным и не совпадать ни с одним другим сертификатом. Набираем, отвечаем на вопросы. На всех вопросах жмем Enter, кроме “Common Name” и “Name”. В этих полях вводим server. На два вопроса в конце отвечаем “y”.

Создание самоподписанного сертификата с помощью OpenSSL, шаг-5


  • Если клиентов будет более одного, то для каждого необходимо создать соответствующее количество сертификатов с соответствующим изменением имени.
  • Вот и всё. Созданные сертификаты и ключи к ним лежат в папке keys.
    • ca.crt - открытый сертификат Root CA, можно распространять свободно
    • ca.key - закрытый ключ сертификата
    • test-server.crt - открытый сертификат сервера
    • test-server.key - закрытый ключ сервера
    • test-client.crt - открытый сертификат клиента
    • test-client.key - закрытый ключ клиента

Остальные файлы интереса особого для нас не представляют.
Создание самоподписанного сертификата с помощью OpenSSL, шаг-6


Icon-warn.png

Предупреждение: Имея закрытый ключ можно создавать сертификаты, подписанные этим ключом, поэтому ни в коем случае не передавайте некому закрытый ключ Root CA.