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

 
» » » Как управлять 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




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

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

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