Перейти к контенту
Форум о видеонаблюдении

Рекомендуемые сообщения

Добрый день.

Возможна ли работа web и мобильных клиентов через https? Сейчас все запросы к api от web и андроид клиента идут через http. Попробовал с помощью nginx все запросы завернуть на https 301-м редиректом, но не сработало. В tcpdump видно, что на запрос, например, "/cameras" в ответ уходит правильный редирект, но подключения к https порту не появляется, похоже, клиент не обрабатывает такие ответы.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!
На данный момент - нет.
Ваше пожелание будет рассмотрено и возможно реализовано #5223.
Благодарим за содействие в развитии системы "Линия"!

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

с помощью nginx все запросы завернуть на https 301-м редиректом

покажите конфиг

---

черех https://nginx.org/ru/docs/http/ngx_http_proxy_module.html 

должен работать

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Yarushkin сказал:

покажите конфиг

server {
  listen 80;
  listen [::]:80;
  listen 443          ssl;
  listen [::]:443     ssl;
  ssl_certificate     /etc/ssl/private/cert.pem;
  ssl_certificate_key /etc/ssl/private/key.pem;
  ssl_session_cache   shared:SSL:10m;
  ssl_session_timeout 10m;

  server_name _;
  
  location / {
    if ($scheme = http) {
      return 301 https://$host$request_uri;
    }
    proxy_pass              http://192.168.19.54:9786;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
  }
}

Редирект сам по себе работает, ссылки типа http://server/cameras/0/image в браузере или http://server/cameras/0/stream/... в стороннем плеере преобразуются в https и данные идут. Не работают родные web и android приложения.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробуйте след вариант 

сделайте отдельный сервер без редиректов только proxy_pass (localhost - добавьте Ваш ip сервера Линии)

 

 server {

        ssl on;

        ssl_certificate "/var/*.crtca";

        ssl_certificate_key "/var/*.key";

    location / {

proxy_pass       http://localhost:9786;

          }

        listen 443 ssl;

        server_name xxx.xxx.ru;      

  }

ну и добавлю если сервер работает через TURN

он также доступен через https 

Изменено пользователем Yarushkin

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

Цитата

Не работают родные web и android приложения.

Что означает фраза "родные web приложения"?

А чтобы работали "родные android приложения", то есть, как я понимаю, подразумевается приложение Линия для Андроида, то как работать будет, если само приложение не поддерживает ни редирект, ни https, ни обработку сертификатов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Yarushkin сказал:

попробуйте след вариант 

Нет, в таком случае ошибка 400 Bad Request The plain HTTP request was sent to HTTPS port, приложения же не знают, что тут ssl/tls.

Про turn знаю, задача безопасно опубликовать напрямую.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, unlifer сказал:

Что означает фраза "родные web приложения"?

Приложений, которые меня интересуют 2 - web (flash) и андроид. Да, я имею ввиду именно приложения, разработанные компанией "ДевЛайн" для работы с системой "Линия".

То, что на данный момент в них не реализована поддержка https Станислав уже пояснил, но все равно спасибо.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

  • Похожий контент

    • Автор: Const
      Добрый день.
      Планируется ли поддержка https со стороны веб и андроид клиента?
      Уже задавал такой вопрос про версию 7.7, этот вопрос по 8-й версии.
       
      Уточню, не требуется реализация всей работы с ssl/tls, ключами, сертификатами и т.д. в сервере Линии. Обернуть http запросы к веб-серверу Линии в https можно с помощью того же nginx. Было бы достаточно, чтобы клиентские приложения поддерживали работу через https и редиректы.
    • Автор: Павел М.
      Возникла задача организовать закрытую трансляцию камер на сайте. Ни один из стандартных вариантов (https://devline.ru/translation/) не подошёл, предложенные на форуме способы тоже не устроили. На скорую руку было набросано решение на nginx (нужен для корректной работы по HTTPS) и Video.js (собственно сам плеер).
      Плюсы:
      Полноценное HTML5 видео со всеми вытекающими. Поддерживается Internet Explorer (по меньшей мере Windows 7/IE11 или новее, на более старых не проверял). Поддержка работы по HTTPS без каких-либо предупреждений. Скрыт реальный адрес сервера с «Линия IP». Не используются сторонние сайты. Разграничение доступа по пользователям. Минусы:
      Весь трафик идёт через ваш сервер.  
      В конфиг nginx надо будет добавить:
      server { listen 443 ssl http2; root /usr/local/www/video; server_name video.example.com; ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; location / { auth_basic "My video server"; auth_basic_user_file htpasswd; } location /cameras/ { proxy_pass http://devline.server.local:9786/cameras/; } } Вместо devline.server.local указываем имя или IP-адрес вашего сервер «Линия IP». В файле htpasswd необходимо прописать имена пользователей и пароли (по паролям читаем документацию), которые совпадают с соответствующими пользователями на сервере «Линия IP» и которым необходимо дать доступ к трансляции.
      Для работы потокового вещания потребуется библиотека HLS для Video.js. Пример кода:
      <!doctype html> <html lang="ru"> <head> <meta charset="utf-8"> <title>Видеонаблюдение</title> <link href="css/video-js.min.css" rel="stylesheet"> <script src="js/videojs-ie8.min.js"></script> <script src="js/video.js"></script> <script src="js/lang/ru.js"></script> <script src="js/videojs-flash.min.js"></script> <script src="js/videojs-http-streaming.min.js"></script> </head> <body> <video id="video" class="video-js vjs-default-skin" width="640" height="360" poster="//video.example.com/cameras/0/image?resolution=640x360" preload="none" controls data-setup='{"language": "ru"}'> <source src="//video.example.com/cameras/0/streaming/main.m3u8" type="application/x-mpegURL" /> <p class="vjs-no-js">Для просмотра этого видео, пожалуйста, включите JavaScript и убедитесь, что ваш браузер поддерживает HTML5-видео.</p> </video> </body> </html>  
    • Автор: Reen
      Здравствуйте. Подскажите, пожалуйста, как можно встроить трансляцию потока FLV на сайт с HTTPS? Загрузка видеопотока блокируется из-за отсутствия SSL на хосте-источнике транляции, в dev-консоли браузера кидает ошибку:
      Использую для встраивания тег 'video' и библиотеку flv.js (для возможности воспроизведения без Flash). На локальном тестовом хосте без SSL проблем нет.
      Пробовала код встраивания отсюда, но при отмеченной галке "ssl" не дает ввести порт.
    • Автор: AlexanderA
      Есть сайт на https   на нем отображается видео ссылкой на
      http://admin:admin@111.222.333.444:77777/cameras/5/image?resolution=360x280&quality=60&rand=Fri%20May%2016%202014%2013:56:43%20GMT+0400%20(MSK) параметр rand  использует текущее время,используется для  того чтобы картинка не кешировалась.
       Проблема в следующем.  На ios версии 5. Так же старые версии firefox и chrome все работает, а так же если по прямой ссылке зайти.
       
       Но не работает если загрузить страницу в современном браузере, в данном случае Chrome выдает такую ошибку 
      The page at 'https://site.site/test.html' was loaded over HTTPS, but displayed insecure content from 'http://admin:admin@111.222.333.444:77777/cameras/4/image?resolution=360x280&quality=60&rand=Fri%20May%2016%202014%2014:11:31%20GMT+0400%20(MSK': this content should also be loaded over HTTPS. test.html:1 Failed to load resource: the server responded with a status of 401 (Unauthorized) Как обойти данную проблему. Было бы идеально, если бы можно было забрать видео потом не картинкой а в формате rtsp, rtp и прочими, которые кушает wowza 
×