Cоздайте и выпустите SSL/TLS-сертификаты для настройки защищенного соединения с сервисами Рутокен KeyBox:
- сертификат серверной аутентификации для веб-сервера и сервера OpenID Connect;
- сертификат клиентской аутентификации для дополнительных сервисов Rutoken KeyBox Event Log Proxy и Indeed AirCard Enterprise.
Серверный сертификат
Cоздайте и выпустите SSL/TLS-сертификат для настройки защищенного соединения с веб-сайтом, где расположен Рутокен KeyBox. Используйте тот же сертификат в качестве сертификата подписи для настройки OpenID Connect.
Требования к сертификату
- Субъект (Subject) сертификата должен содержать FQDN сервера Rutoken KeyBox;
- Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера Rutoken KeyBox), например, server.demo.local, или соответствующую запись с подстановочными знаками, например *.demo.local (Wildcard certificate);
- Улучшенный ключ (Enhanced Key Usage) сертификата серверной аутентификации должен содержать значение «Проверка подлинности сервера» (Server Authentication).
Создание шаблона сертификата
Подготовьте шаблон сертификата. В инструкции описана настройка шаблона сертификата в УЦ Microsoft CA.
- В оснастке управления УЦ certsrv правой кнопкой мыши нажмите на Шаблоны сертификатов (Certificate Templates) и выберите Управление (Manage).
- Скопируйте предустановленный шаблон Веб-сервер (Web Server) – правой кнопкой мыши нажмите на название шаблона и выберите Скопировать шаблон (Duplicate Template). Откроется окно свойств нового шаблона.
- На вкладке Общие (General) укажите имя шаблона сертификата. При необходимости укажите период действия сертификата и период обновления.
- На вкладке Обработка запроса (Request Handling) включите опцию Разрешить экспортировать закрытый ключ (Allow private key to be exported).
- На вкладке Шифрование (Cryptography) измените минимальный размер ключа при необходимости.
- На вкладке Безопасность (Security) укажите имя сервера для запроса сертификата:
- Нажмите Добавить (Add)→Типы объектов (Object Types), включите опцию Компьютеры (Computers) и нажмите ОК.
- Введите имя сервера, где расположен Рутокен KeyBox, и нажмите ОК.
- В списке разрешений напротив опции Заявка (Enroll) включите Разрешить (Allow), чтобы разрешить запрос сертификата.
- Нажмите Применить (Apply) и ОК.
- Опубликуйте созданный шаблон сертификата:
- Перейдите в оснастку управления УЦ certsrv.
- Правой кнопкой мыши нажмите на Шаблоны сертификатов (Certificate Templates) и выберите Создать (New)→Выдаваемый шаблон сертификата (Certificate Template to Issue).
- В окне Включение шаблонов сертификатов (Enable Certificate Templates) выберите созданный шаблон. Шаблон опубликуется в УЦ.
- Закройте certsrv.
Выпуск сертификата
Выпустите TLS-сертификат на имя рабочей станции, где будет установлен веб-сервер. Сертификат можно выпустить:
- в УЦ;
- с помощью самоподписанного сертификата.
УЦ
В инструкции описан процесс выпуска сертификата в УЦ Microsoft CA.
- Откройте оснастку certs и перейдите в раздел хранилища локального компьютера Сертификаты (локальный компьютер) (Certificates (Local Computer)).
- Правой кнопкой мыши нажмите Личное (Personal).
- Выберите Все задачи (All Tasks)→Запросить новый сертификат (Request New Certificate).
- В окне Регистрация сертификатов (Certificate Enrollment) два раза нажмите Далее (Next) и активируйте чекбокс с названием шаблона сертификата.
- Нажмите на ссылку Требуется больше данных для подачи заявки на этот сертификат. Щелкните здесь для настройки параметров (More information is required to enroll for this certificate. Click here to configure settings), чтобы указать дополнительную информацию для запроса сертификата. Откроется окно свойств сертификата.
- На вкладке Субъект (Subject):
- В поле Имя субъекта (Subject name) в выпадающем списке Тип (Type) выберите Общее имя (Common name).
- Введите FQDN сервера Rutoken KeyBox и нажмите Добавить (Add).
- В поле Дополнительное имя (Alternative name) в выпадающем списке Тип (Type) выберите DNS.
- Введите FQDN сервера Rutoken KeyBox и нажмите Добавить (Add).
- При необходимости создайте маску имени домена для Wildcard сертификатов, которые предъявляют серверы с различными именами. В поле Дополнительное имя (Alternative name) в выпадающем списке Тип (Type) выберите DNS и введите имя домена, например, *.demo.local. Нажмите Добавить (Add).
- Нажмите OK.
- Перейдите на вкладку Закрытый ключ (Private Key)→Параметры ключа (Key Options) и убедитесь, что опция Сделать закрытый ключ экспортируемым (Make private key exportable) включена. Нажмите OK.
- Нажмите Заявка (Enroll).
Сертификат выпущен и установлен в хранилище локального компьютера (Сертификаты (Certificates)→Личное (Personal)→Сертификаты (Certificates)) с назначением «Проверка подлинности сервера» (Server Authentication).
Установка сертификата на ОС Linux
Чтобы перенести и установить сертификат на рабочие станции под управлением ОС Linux, экспортируйте сертификат и разделите его на файл сертификата и файл закрытого ключа:
Выпустите сертификат в УЦ по инструкции выше.
Правой кнопкой мыши нажмите на сертификат и выберите Все задачи (All Tasks)→Экспорт (Export). Откроется мастер экспорта сертификатов.
Нажмите Далее (Next), выберите Да, экспортировать закрытый ключ (Yes, export the private key) и два раза нажмите Далее (Next).
Установите пароль – включите опцию Пароль (Password), введите и подтвердите пароль. Нажмите Далее (Next).
Выберите папку для экспорта сертификата.
Нажмите Готово (Finish).
Разделите файл PFX на файл сертификата и файл закрытого ключа. Вместо PFXFILE подставьте имя импортированного файла.
предупреждениеПри выполнении команд утилита openssl предлагает установить пароль для файла закрытого ключа. Оставьте файл без пароля: два раза нажмите Enter.
openssl pkcs12 -in PFXFILE.pfx -nokeys | sed -ne '/-BEGIN CERTIFICATE/,/END CERTIFICATE/p' > SSL.crt openssl pkcs12 -in PFXFILE.pfx -cacerts -nokeys | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > root-ca.crt openssl pkcs12 -in PFXFILE.pfx -nocerts -out SSLencrypted.key openssl rsa -in SSLencrypted.key -out SSL.key rm SSLencrypted.key
Файл SSL.crt должен содержать следующее:
-----BEGIN CERTIFICATE----- #Ваш сертификат# -----END CERTIFICATE-----
Самоподписанный сертификат
Самоподписанный корневой сертификат создается с помощью утилиты openssl.
Создайте закрытый ключ, а затем корневой сертификат с использованием сгенерированного ключа:
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -out ca.crt -days 3650 -subj "/CN=selfCA"
Создайте файл конфигурации SSL.conf, который содержит настройки для генерации запроса на сертификат веб-сервера. Вместо
<FQDN сервера Rutoken KeyBox>подставьте DNS-имя рабочей станции, где будет установлен веб-сервер.nano SSL.conf
Создайте утилитой openssl запрос на сертификат и выпустите сертификат для веб-сервера с помощью самоподписанного сертификата:
openssl genrsa -out SSL.key 2048 openssl req -new -sha256 -out SSL.csr -key SSL.key -config SSL.conf openssl x509 -req -days 365 -in SSL.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile SSL.conf -extensions req_ext -out SSL.crt
Клиентский сертификат
Сервер RutokenKeyBox может выступать в качестве клиента для дополнительных сервисов RutokenKeyBox Event Log Proxy и Indeed AirCard Enterprise.
В этом случае сервер RutokenKeyBox должен иметь сертификат клиентской аутентификации, чтобы получить доступ к сервисам.
Требования к сертификату
- Субъект (Subject) сертификата должен содержать FQDN сервера RutokenKeyBox;
- Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение «Проверка подлинности клиента» (Client Authentication).
Создание шаблона сертификата
Подготовьте шаблон сертификата. В инструкции описана настройка шаблона сертификата в УЦ Microsoft CA.
- В оснастке управления УЦ certsrv правой кнопкой мыши нажмите на Шаблоны сертификатов (Certificate Templates) и выберите Управление (Manage).
- Скопируйте предустановленный шаблон Проверка подлинности рабочей станции (Workstation Authentication) – правой кнопкой мыши нажмите на название шаблона и выберите Скопировать шаблон (Duplicate Template). Откроется окно свойств нового шаблона.
- На вкладке Общие (General) укажите имя шаблона сертификата. При необходимости укажите период действия сертификата и период обновления.
- На вкладке Обработка запроса (Request Handling) включите опцию Разрешить экспортировать закрытый ключ (Allow private key to be exported).
- На вкладке Шифрование (Cryptography) измените минимальный размер ключа при необходимости.
- На вкладке Безопасность (Security) укажите имя сервера для запроса сертификата:
- Нажмите Добавить (Add)→Типы объектов (Object Types), включите опцию Компьютеры (Computers) и нажмите ОК.
- Введите имя сервера, где будет расположен RutokenKeyBox, и нажмите ОК.
- В списке разрешений напротив опции Заявка (Enroll) включите Разрешить (Allow), чтобы разрешить запрос сертификата.
- Нажмите Применить (Apply) и ОК.
- Опубликуйте созданный шаблон сертификата:
- Перейдите в оснастку управления УЦ certsrv.
- Правой кнопкой мыши нажмите на Шаблоны сертификатов (Certificate Templates) и выберите Создать (New)→Выдаваемый шаблон сертификата (Certificate Template to Issue).
- В окне Включение шаблонов сертификатов (Enable Certificate Templates) выберите созданный шаблон. Шаблон опубликуется в УЦ.
- Закройте certsrv.
Выпуск сертификата
Выпустите TLS-сертификат на имя сервера RutokenKeyBox.
- в УЦ;
- с помощью самоподписанного сертификата.
УЦ
В инструкции описан процесс выпуска сертификата в УЦ Microsoft CA.
- Откройте оснастку certs и перейдите в раздел хранилища локального компьютера Сертификаты (локальный компьютер) (Certificates (Local Computer)).
- Правой кнопкой мыши нажмите Личное (Personal).
- Выберите Все задачи (All Tasks)→Запросить новый сертификат (Request New Certificate).
- В окне Регистрация сертификатов (Certificate Enrollment) два раза нажмите Далее (Next) и активируйте чекбокс с названием шаблона сертификата.
- Нажмите на ссылку Требуется больше данных для подачи заявки на этот сертификат. Щелкните здесь для настройки параметров (More information is required to enroll for this certificate. Click here to configure settings), чтобы указать дополнительную информацию для запроса сертификата. Откроется окно свойств сертификата.
- На вкладке Субъект (Subject):
- В поле Имя субъекта (Subject name) в выпадающем списке Тип (Type) выберите Общее имя (Common name).
- Введите FQDN сервера RutokenKeyBox и нажмите Добавить (Add).
- В поле Дополнительное имя (Alternative name) в выпадающем списке Тип (Type) выберите DNS.
- Введите FQDN сервера RutokenKeyBox и нажмите Добавить (Add).
- При необходимости создайте маску имени домена для Wildcard сертификатов, которые предъявляют серверы с различными именами. В поле Дополнительное имя (Alternative name) в выпадающем списке Тип (Type) выберите DNS и введите имя домена, например, *.demo.local. Нажмите Добавить (Add).
- Нажмите OK.
- Перейдите на вкладку Закрытый ключ (Private Key)→Параметры ключа (Key Options) и убедитесь, что включена опция Сделать закрытый ключ экспортируемым (Make private key exportable). Нажмите OK.
- Нажмите Заявка (Enroll).
Сертификат выпущен и установлен в хранилище локального компьютера (Сертификаты (Certificates)→Личное (Personal)→Сертификаты (Certificates)) с назначением «Проверка подлинности рабочей станции» (Client Authentication).
Установка сертификата на ОС Linux
Чтобы перенести и установить сертификат на рабочие станции под управлением ОС Linux, экспортируйте сертификат и разделите его на файл сертификата и файл закрытого ключа:
Выпустите сертификат в УЦ по инструкции выше.
Правой кнопкой мыши нажмите на сертификат и выберите Все задачи (All Tasks)→Экспорт (Export). Откроется мастер экспорта сертификатов.
Нажмите Далее (Next), выберите Да, экспортировать закрытый ключ (Yes, export the private key) и два раза нажмите Далее (Next).
Установите пароль – включите опцию Пароль (Password), введите и подтвердите пароль. Нажмите Далее (Next).
Выберите папку для экспорта сертификата.
Нажмите Готово (Finish).
Разделите файл PFX на файл сертификата и файл закрытого ключа. Вместо PFXFILE подставьте имя импортированного файла.
При выполнении команд утилита openssl предлагает установить пароль для файла закрытого ключа. Оставьте файл без пароля: два раза нажмите Enter.
openssl pkcs12 -in PFXFILE.pfx -nokeys | sed -ne '/-BEGIN CERTIFICATE/,/END CERTIFICATE/p' > client.crt openssl pkcs12 -in PFXFILE.pfx -cacerts -nokeys | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > root-ca.crt openssl pkcs12 -in PFXFILE.pfx -nocerts -out clientencrypted.key openssl rsa -in clientencrypted.key -out client.key rm clientencrypted.key
Файл client.crt должен содержать следующее:
-----BEGIN CERTIFICATE----- #Ваш сертификат# -----END CERTIFICATE-----
Самоподписанный сертификат
Самоподписанный корневой сертификат создается с помощью утилиты openssl.
Создайте закрытый ключ, а затем корневой сертификат с использованием сгенерированного ключа:
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -out ca.crt -days 3650 -subj "/CN=selfCA"
Создайте файл конфигурации client.conf, который содержит настройки для генерации запроса на сертификат. Вместо
<FQDN сервера RutokenKeyBox>подставьте DNS-имя рабочей станции, где установлен сервер RutokenKeyBox.nano client.conf
Создайте утилитой openssl запрос на сертификат и выпустите сертификат с помощью самоподписанного сертификата:
openssl genrsa -out client.key 2048 openssl req -new -sha256 -out client.csr -key client.key -config client.conf openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile client.conf -extensions req_ext -out client.crt