Настройка HTTPS-соединения
Рис. 1. Использование HTTPS-соединения в системе Pilot.
Для прослушивания подключений и ответа на запросы Pilot-Server использует класс .Net HttpListener. Обращения к нему осуществляются по HTTP-протоколу. На ОС Linux HttpListener не поддерживает привязку SSL-сертификата. Для клиент-серверного соединения по протоколу HTTPS необходимо использовать проксирующий сервер с поддержкой SSL/TSL и перенаправить HTTPS траффик на HTTP точку Pilot-Server, как показано на рисунке выше. Примером такого проксирующего сервера может быть Nginx .
Для Pilot-Server, установленного на OC Windows, дополнительно есть возможность использования прямого HTTPS-соединения.▼
Чтобы система Pilot могла работать по HTTPS-соединению требуется:
- Получить SSL-сертификат уровня Domain Validation.
- Установить сертификат на сервере.
- Зарегистрировать сертификат за Pilot-Server.
Получение самоподписанных SSL-сертификатов
Для тестирования работы системы Pilot по HTTPS-соединению можно сформировать сертификат самостоятельно. Например, с помощью Средства создания сертификатов (MakeCert.exe).
Чтобы сформировать сертификаты с помощью Makecert.exe:
- Нажмите кнопку Пуск, введите сmd в поле Найти программы и файлы и запустите cmd.exe от имени администратора.
- Скопируйте команду:
- Замените PATH на ваши пути, brain_name на ваше имя и введите получившуюся команду. Если всё правильно, программа предложит задать пароль.
- Затем на основе полученного сертификата необходимо сформировать сертификат для сервера:
- Аналогично, замените всё, выделенное жирным, на ваши имена. Domain_name должно быть в виде адреса подключения к Pilot-Server, например, youserver.company.ru.
Установка сертификатов на сервере
Чтобы установить сертификаты на сервере необходимо добавить оснастку Сертификаты в консоль MMC для учетной записи компьютера:
- Нажмите кнопку Пуск, введите mmc в поле Найти программы и файлы и нажмите клавишу ENTER.
- В меню Файл выберите пункт Добавить или удалить оснастку.
- В разделе Доступные оснастки дважды щелкните пункт Сертификаты.
- Выберите пункт Учетная запись компьютера и нажмите кнопку Далее.
- Установите переключатель в положение Локальный компьютер и нажмите кнопку Готово.
- Нажмите кнопку ОК.
Чтобы установить корневой сертификат brain_name.cer:
- Перейдите в папку хранения сертификата.
- Вызовите контекстное меню и выберите команду Установить сертификат.
- В Мастере импорта сертификатов выберите Поместить все сертификаты в выбранное хранилище.
- Выберите хранилище Доверенные корневые центры сертификации.
- Завершите импорт сертификата, следуя указаниям Мастера.
Чтобы установить сертификат server_certificate.cer повторите то же самое, но при выборе хранилища укажите Личное.
После установки SSL-сертификата убедитесь, что для него есть доступный закрытый ключ. Информацию о наличии закрытого ключа можно узнать в окне Сведения о сертификате оснастки Сертификаты. |
Установка сертификатов на клиентах
На клиентских компьютерах, работающих с системой Pilot, необходимо установить сертификат brain_name.cer в хранилище Доверенные корневые центры сертификации.
Если SSL-сертификат получен в Центре Сертификации, устанавливать на клиентах его не требуется.
Регистрация сертификата для Pilot-Server
Чтобы при обращении к Pilot-Server по заданному порту клиенты могли проверить его сертификат, необходимо зарегистрировать сертификат за приложением.
Для начала надо скопировать отпечаток полученного сертификата:
- Откройте server_certificate.cer.
- Перейдите во вкладку Состав.
- Выберите поле Отпечаток. Скопируйте значение.
Чтобы зарегистрировать сертификат:
- Нажмите кнопку Пуск, введите сmd в поле Найти программы и файлы и нажмите клавишу ENTER.
- Подставьте в следующую строку скопированный отпечаток, только удалите пробелы. И вставьте ее в командую строку.
Теперь можно подключаться через HTTPS-соединение по адресу https://yourserver.company.ru:5548
Замена сертификата для Pilot-Server
Для замены сертификата удалите предыдущий командой:
netsh http delete sslcert ipport=0.0.0.0:5548
После этого установите новый сертификат, согласно инструкции выше.
Создание файла сертификата .pfx с помощью OpenSSL
В некоторых случаях для безопасного импорта и экспорта сертификатов и закрытых ключей требуется сохранить их в формате .PFX (PKCS#12). Однако следует помнить, что сертификаты для подписи кода и документов не могут быть сгенерированы в виде pfx-файлов, а их закрытые ключи не могут быть экспортированы.
Для создания pfx-файла с помощью OpenSSL используйте следующую команду:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt
Где:
openssl — команда для запуска OpenSSL.
pkcs12 — файловая утилита для работы с файлами PKCS#12 в OpenSSL.
-export -out certificate.pfx — экспортировать и сохранить файл PFX как certificate.pfx.
-inkey privateKey.key — используйте файл PrivateKey.key в качестве закрытого ключа для объединения с сертификатом.
-in certificate.crt— используйте файл certificate.crt в качестве сертификата, с которым будет объединен закрытый ключ.
-certfile more.crt — это необязательный параметр. Используется, если у вас есть ещё какие-либо сертификаты, которые вы хотите добавить в файл PFX.
После ввода команды вам будет предложено ввести и подтвердить пароль экспорта для защиты файла PFX. Запомните этот пароль. Он понадобится вам, когда вы захотите экспортировать сертификаты и ключ.