Logo Logo ru
  • iRidi Pro
    Основные компоненты
    • Приложение i3 Pro
    • iRidi Pro Server
    • iRidi Studio
    • iRidium studio v. 1.3.8 (устаревшая версия)
    Java Script в iRidi
    • Руководство
    • Справочник
    • Примеры
    • JS драйвера
    другие
    • Личный Кабинет
    • iRidium Cloud
    • iRidium Transfer
    • Push-уведомления
    • Лучшая практика
    Лицензирование
    • Лицензирование и передача проекта
    • Оффлайн-лицензирование
    • Активация iRidi Pro Server
  • Продукты
    i3 lite
    • Приложение i3 lite
    • Регистрация и лицензирование
    • Сервер
    • Модули
    KNX Home Server
    • Приложение i3 KNX
    • KNX Home Server
    BUS77 HOME SERVER
    • Приложения Bus77 Home и Bus77 Lite
    • Bus77 Home Server
    Решения
    • BYOD - решение для гостиниц
    • Портал жителя - решение для МКД
    iRidi SCADA
    • iRidi SCADA
  • Bus77
    НАСТРОЙКА BUS77
    • Основы Bus77
    • Приложения Bus77 Home и Bus77 Lite
    • Работа с драйвером Bus77 в iRidi Studio
    • Настройка шины Bus77 в iRidi Studio
    ПРОТОКОЛ BUS77
    • Характеристики CAN (Bus77)
    • Описание протокола
    • Исходники на GitHub
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
  • Поддерживаемое оборудование
    Драйверы
    • Список драйверов
    • ProAV драйвера
    • AV & Custom Systems
    • JS драйвера
    • Сторонние драйвера и фриланс
    Протоколы и интерфейсы
    • Голосовое управление
    • 1-Wire
    • BACnet IP
    • Bus77
    • KNX
    • KNX IP BAOS
    • Weinzierl kBerry
    • Microsoft Exchange
    • Modbus
    • MQTT
    • NFC
    • ODBC
    • Onvif
    • SIP
    • SNMP
    • Wake On Lan
    • Z-Wave
    • ZigBee
    Производители
    • AMX
    • AVCiT
    • Beckhoff ADS
    • Biamp Tesira
    • Bluesound
    • Casambi
    • BSS Harman
    • Clipsal
    • ControlArt 7Port
    • Crestron
    • DigiBird
    • Domintell
    • Duotecno
    • EIDE
    • EPSNET
    • Global Cache
    • HDL Buspro
    • Helvar
    • IEAST
    • INELS BUS
    • INELS Wireless
    • Intesis
    • Kleger
    • Kramer VIA
    • Kramer 3000
    • Larnitech
    • Legrand Netatmo
    • LG TV
    • Lutron
    • Lutron Homeworks QS
    • MyHome
    • Nest
    • Novastar
    • Panasоnic PTZ
    • Philips Dynalite
    • PJLink
    • Satel
    • SamsungTV
    • Sonos
    • Somfy
    • SpinetiX
    • Televic Conference
    • TIS
    • Tion
    • URRI
    • Velbus
    • Velocio
    • Vinteo
    • WyreStorm
    • WiiM
    • Xicato
    • Yamaha
    • ZONT
    • Z-Wave.me
    Протестированное оборудование
    • Панель HDL S57
    • Панель HDL S10
    • SIP-домофон
    • Akuvox
    • Arlight
    • Divus
    • QBic TD-1050 PRO
    • QBic TD-1060 Slim
    • QBic TD-1070
    • Sigur
    • Uni-Ubi
    • Velocio
  • Оборудование iRidi

    Серверы
    • HS Сервер
    • ProAV Control Processor Basic
    • ProAV Control Processor Advanced
    • Спецификация контроллеров UMC
    • Настройка контроллера UMC C2
    • Настройка контроллера UMC C3
    • Настройка контроллера HDL IntelliCenter 2 (UMC C4)
    Модули расширения
    • I-PX-RS1
    • I-PX-RS4
    • I-PX-IR3
    KNX
    • KNX Home Server
    • KNX IP Interface
    Панели управления
    • iRidium Panel 7
    • Touch Panel P3
    • Touch Panel P6
    • Touch Panel P8
    • Touch Panel P10
    • Tabletop Touch Panel 10
    • AV Remote Control
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
    • Differences
Сайт iRidium mobile
Содержание
    Инструменты‌
    • Сведения о странице
    • Постоянная ссылка
    • Версия для печати
    • Спецстраницы
    • Связанные правки
    • Ссылки сюда
    Login / Create Account
    Материал из for iRidium developers
    Перейти к: навигация, поиск

    Содержание

    • 1 Использование VPN в i3 Pro
      • 1.1 Принцип работы VPN
      • 1.2 Генерация сертификатов
      • 1.3 Использование в i3 Pro

    Использование VPN в i3 Pro

    Начиная с версии 1.1.7 платформа i3 Pro поддерживает VPN соединение. Для использования VPN соединения вам потребуется сгенерировать сертификаты безопасности и модифицировать ваш проект. В этой статье вы найдете подробные инструкции по генерации сертификатов и настройке проекта

    Принцип работы VPN

    О том что такое VPN и принцип его работы можно прочитать тут

    Генерация сертификатов

    Перед настройкой VPN в вашем проекте, необходимо сгенерировать сертификаты безопасности. Для этого надо скачать на компьютер под управлением OS Windows программу OpenVPN для генерации необходимых сертификатов.

    Внимание! При установке программы выбираем все галочки

    Далее переходим в C:\Program files\OpenVPN\easy-rsa, запускаем init-config.bat, появится vars.bat.sample, открываем его в блокноте и редактируем следующие строки:

    set KEY_COUNTRY=RU
    set KEY_PROVINCE=MoscowRegion
    set KEY_CITY=Moscow
    set KEY_ORG=OpenVPN
    set KEY_EMAIL=mybox@voxlink.ru
    set KEY_CN=server
    set KEY_NAME=server
    set KEY_OU=voxlink

    Все строки кроме “Key_CN” и “Key_NAME” заполняем в произвольном порядке. Сохраняем как vars.bat на рабочий стол, затем перемещаем в C:\Program files\OpenVPN\easy-rsa. Теперь открываем openssl-1.0.0.cnf и проверяем параметр. default_days=3650 (Это срок действия сертификата, 3650=10лет).
    Открываем командную строку от имени администратора и пишем:

    cd C:\Program Files\OpenVPN\easy-rsa
    vars
    clean-all

    Если видим сообщение о том, что «Скопировано файлов: 1». Значит, процедура успешна. В этом же окне набираем:

    build-dh (создание ключа Диффи-Хеллмана)
    build-ca (создание основного сертификата)

    На все вопросы нажимаете Enter пока не увидите путь
    C:\Program files\OpenVPN\easy-rsa Далее набираем:

    build-key-server server

    На все вопросы кроме «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?» жмем Enter, на эти два жмём Y. Создадим сертификат клиента: build-key client На вопрос Common Name (eg, your name or your server's hostname) нужно ввести client. В конце дважды ввести Y. Из папки C:\Program Files\OpenVPN\easy-rsa\keys забираем: ca.crt, server.crt, server.key

    Использование в i3 Pro

    Для использования VPN в проекте i3 Pro, необходимо добавить к проекту специальный скрипт, в котором указать сгенерированные ключи. Создайте новый скриптый файл и добавите в него скрипт

    var g_Name = "OpenVPN"; //название конфигурации, менять его не надо
    var g_Config = //Конфигурация VPN
    "proto tcp-client                                                \n" +
    "# в этой строчке мы указываем адрес в интернете                 \n" +
    "remote 217.114.30.30                                            \n" +   
    "dev tun                                                         \n" +
    "                                                                \n" +
    "nobind                                                          \n" +
    "persist-key                                                     \n" +
    "                                                                \n" +
    "tls-client                                                      \n" +
    "#указываем имена публичного CA сертификата                      \n" +
    "#ca ca.crt                                                      \n" +
    "# публичного сертификата клиента                                \n" +
    "#cert client.crt                                                \n" +
    "# и его закрытый ключ                                           \n" +
    "#key client.key                                                 \n" +
    "                                                                \n" +
    "verb 3   									                     \n" +
    "       												         \n" +
    "                                                                \n" +
    "ns-cert-type server                                             \n" +
    "cipher AES-256-CBC                                              \n" +
    "auth SHA1                                                       \n" +
    "pull                                                            \n" +
    "tls-cipher TLS-RSA-WITH-AES-256-CBC-SHA                         \n" +
    "                                                                \n" +
    "<ca>                                                            \n" +
    "-----BEGIN CERTIFICATE-----                                     \n" +
    "/n"+//Прописываем публичный сертификат
    "-----END CERTIFICATE-----                                       \n" +
    "</ca>                                                           \n" +
    "<cert>                                                          \n" +
    "-----BEGIN CERTIFICATE-----                                     \n" +
    "\n" +//Прописываем публичный сертификат клиента
    "-----END CERTIFICATE-----                                       \n" +
    "</cert>                                                         \n" +
    "<key>                                                           \n" +
    "-----BEGIN PRIVATE KEY-----                                     \n" +
    "\n" +//Прописываем закрытый ключ
    "-----END PRIVATE KEY-----                                       \n" +
    "</key>                                                          \n";
     
    var g_oPage;
    var g_oStatusItem;
    var g_iStatusInterval = 0; //флаг опроса VPN конфигурации
     
    function VPNLog(name, event, result, msg)
    {
       IR.Log("name: " + name);
       IR.Log("event: " + event);
       IR.Log("result: " + result);
       IR.Log("msg: " + msg);
    }
     
    function activateConfiguration()
    {
       IR.ActivateVPNConfiguration(//Функция активации VPN
          g_Name,
          {
             type: "OpenVPN",
             username: "ovpn_user3",
             password: "user3",
             NotUseDefaulRoute: 0,
             ovpn: g_Config//,
     
             //iridium_debug: true,
             //iridium_debug_level: 7,
             //iridium_debug_host: "192.168.0.89",
             //iridium_debug_port: 514,
          },
          VPNLog
       );
    }
     
    function startConfiguration()//Функция старта VPN соединения, в которой создается таймер обновления конфигурации, если флаг g_iStatusInterval=1
    {
       if(!g_iStatusInterval)
       {
          g_iStatusInterval = IR.SetInterval(1000, function(){
             getConfigurationStatus();
          });
        }
     
       IR.StartVPNConfiguration(
          g_Name,
          VPNLog
       );
    }
     
    function stopConfiguration()//Функция прекращения VPN соединения
    {
       if(!g_iStatusInterval)
       {
          g_iStatusInterval = IR.SetInterval(1000, function(){
             getConfigurationStatus();
          });
        }
     
       IR.StopVPNConfiguration(
         g_Name,
         VPNLog
       );
    } 
     
    function getConfigurationStatus()//Функция обновления VPN конфигурации
    {
       if(!g_oPage)
          g_oPage = IR.GetPage("Page 1");
     
       if(g_oPage && !g_oStatusItem)
          g_oStatusItem = g_oPage.GetItem("Item 5");
     
       IR.GetVPNConfigurationStatus(
          g_Name,
          function (name, event, result, msg)
          {
             IR.Log("name: " + name);
             IR.Log("event: " + event);
             IR.Log("result: " + result);
             IR.Log("msg: " + msg);
     
             g_oStatusItem.Value = result;
     
             if(g_iStatusInterval && result <= 4)
             {
                IR.ClearInterval(g_iStatusInterval);
                g_iStatusInterval = 0;
             }               
          }
       );
    }
     
    IR.AddListener(IR.EVENT_START,0,function()//Запуск получения конфигурации при старте проекта
    {
       if(!g_iStatusInterval)
       {
          g_iStatusInterval = IR.SetInterval(1000, function(){
             getConfigurationStatus();
          });
        }
    });
    скачать:
    • пример cервера
    • пример клиента, подключенного к серверу
    Источник — «https://dev.iridi.com/index.php?title=VPNConnection/ru&oldid=44587»
    О нас
    Компания
    Команда
    История
    Философия
    Награды
    Партнерство
    Наши партнеры
    Партнерские программы
    Подать заявку на партнерство
    Продукты
    iRidium pro
    iRidium lite
    iRidium gate
    iRidium server
    Загрузки
    iRidium pro
    iRidium lite
    Другие версии
    Маркетинговые материалы
    Поддержка
    Онлайн курсы/Видео
    Рекомендуемое оборудование
    Другие версии
    iRidium pro
    Документация
    FAQ
    Форум
    iRidium lite
    Документация
    Форум
    Проекты
    Типовые проекты
    Умные здания
    Умные дома
    Специальные решения
    Найти дилера
    Новости
    Youtube
    Twitter
    VK
    Logo
    contact@iridi.com
    +7 (499) 322-73-29

    Политика конфиденциальности