цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Как управлять Raspberry Pi через HTTPS без публичного IP

Как управлять Raspberry Pi через HTTPS без публичного IP

Автор: Mike(admin) от 4-01-2017, 09:05

Одноплатный компьютер Raspberry Pi хорош тем, что на его основе можно сделать массу «умных» устройств с доступом через интернет, например, автоматическую систему открывания ворот, световой контроллер или регистратор температуры и прочих параметров. И, возможно, вам потребуется получить доступ к такому устройству не через вашу локальную сеть, а через Интернет.


Как управлять Raspberry Pi через HTTPS без публичного IP

Сегодня существует целый ряд онлайн-сервисов и платформ, которые позволяют получить доступ к устройствам Интернета вещей через глобальную сеть с определенной степенью защиты. Большинство из них сосредоточено на центральной точке доверия виртуального облака. Но есть один сервис, не похожий на другие, и называется он Beame.


Beame позволяет выдачу публично доверенных учетных данных TLS и доступ непосредственно к целевому устройству с end-to-end шифрованием из любого браузера и любой точки мира. По сути, вы будете работать и разрабатывать на устройстве, как если бы оно было бы обычным веб-сервером. Beame может предоставить HTML-страницы, javascript и другие стандартные функциональные возможности веб-сервера.


В данном примере мы создадим простую программу включения и выключения светодиода с помощью Raspberry Pi, доступ к которому будет осуществляться через Beame, то есть через защищенное интернет-соединение. Для начала нам следует загрузить NodeJS (6.9.x).



ssh pi@myip 
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 
sudo apt-get install nodejs
node --version
       
pi@raspberrypi:~ $ node --version
v6.9.2

Затем следует установить Beame: beame-insta-ssl. После этого вам нужно будет получить токен по ссылке https://ypxf72akb6onjvrq.ohkv8odznwh5jpwm.v1.p.beameio.net/insta-ssl, где необходимо подтвердить, что вы не робот. Токен будет отправлен на email.



# beame-insta-ssl create 'token from email'

Как управлять Raspberry Pi через HTTPS без публичного IP


# beame-insta-ssl tunnel 8008 http
Starting tunnel https://qwertyuio.asdfghjkl.v1.d.beameio.net -> http://localhost:8008

Теперь все, что нам нужно сделать, это собрать небольшой проект, который что-то делает. Как и отмечалось выше, наша программа будет мигать светодиодом. Ниже приведен код этой программы и лог curl.



var http = require('http');
var url = require('url');
var Gpio = require('onoff').Gpio;

var led = new Gpio(14, 'out');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/html'});
  var command = url.parse(req.url).pathname.slice(1);
  switch(command) {
    case "on":
      led.writeSync(1);
      res.end("It's ON");
      break;
    case "off":
      led.writeSync(0);
      res.end("It's OFF");
      break;
    default:
      res.end('Hello? yes, this is pi!');
  }

}).listen(1337);
console.log("Our on off server is listenting on port 1334");


~ 523 > curl https://cgqjqvahrdurqwhi.v1.p.beameio.net/on -v
*  Trying 52.57.114.229...
* TCP_NODELAY set
* Connected to cgqjqvahrdurqwhi.v1.p.beameio.net (52.57.114.229) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: cgqjqvahrdurqwhi.v1.p.beameio.net
* Server certificate: GlobalSign Organization Validation CA - SHA256 - G2
* Server certificate: GlobalSign Root CA
> GET /on HTTP/1.1
> Host: cgqjqvahrdurqwhi.v1.p.beameio.net
> User-Agent: curl/7.51.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< content-type: text/html
< date: Tue, 03 Jan 2017 00:16:17 GMT
< connection: close
< transfer-encoding: chunked
< 
* Curl_http_done: called premature == 0
* Closing connection 0
       
curl https://cgqjqvahrdurqwhi.v1.p.beameio.net/off -v
*  Trying 52.57.114.229...
* TCP_NODELAY set
* Connected to cgqjqvahrdurqwhi.v1.p.beameio.net (52.57.114.229) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: cgqjqvahrdurqwhi.v1.p.beameio.net
* Server certificate: GlobalSign Organization Validation CA - SHA256 - G2
* Server certificate: GlobalSign Root CA
> GET /off HTTP/1.1
> Host: cgqjqvahrdurqwhi.v1.p.beameio.net
> User-Agent: curl/7.51.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< content-type: text/html
< date: Tue, 03 Jan 2017 00:16:45 GMT
< connection: close
< transfer-encoding: chunked
< 
* Curl_http_done: called premature == 0
* Closing connection 0



© digitrode.ru


Теги: Raspberry Pi, Beame



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий