从Raspberry Pi安全地将数据发送到Apache服务器

时间:2018-08-20 14:59:18

标签: javascript php html json apache

Raspberry Pi-收集温度数据并将其存储在文件中

服务器-VM上的Apache托管具有某些数据图的网站(HTML,PHP + JavaScript)

我需要将数据文件从Pi安全地发送到服务器,服务器将使用该数据文件在网站上填充图形。

最简单的方法是什么?

我对与此相关的所有事物都比较陌生,已经做了很多阅读和测试,但似乎无法弄清楚如何正确地做到这一点。

我为该图提供了两套代码,一套使用SQLite数据库(理想),另一套使用JSON文件(可以,但不是最理想的)。两者都只使用当前本地存储的文件。

4 个答案:

答案 0 :(得分:0)

在服务器B上运行HTTPS Web服务,该服务要求服务器A发送用户名/密码以及数据。

答案 1 :(得分:0)

如果可能,可以在两台计算机之间创建VPN。

取决于数据的敏感性,HTTPS可能就足够了+带有额外授权的某种API。


非常基本的实现

Apache服务器端

save.php:

<?php
    $temperature = $_GET['temperature'];
    $timestamp = $_GET['timestamp'];
    // INSERT into database
    // or
    // save in the file

Pi SIDE

我不知道您在Pi端使用的是哪种语言,但是您可以执行的操作是执行HTTP GET请求,例如:https://your.server.ip.or.domain/save.php?temperature=N&timestamp=999999999

如果可能的话(Pi具有固定的IP),您可以根据请求过滤请求。它将使它更加安全。

答案 2 :(得分:0)

使PI将温度数据保存到一个简单的本地文件中。 (最好在内存托管分区中,因为SD卡确实会磨损。)

在PI上配置sftp服务器。

然后在Web服务器上使用以下命令从PHP中提取文件

file_get_contents("ssh2.sftp://{$user}:{$pass}@{$pi_ip}:22{$pi_path}"))

并进行相应处理。

答案 3 :(得分:0)

正如许多其他人所讨论的,HTTPS服务器将是一个好的开始,如果您为服务器注册了域名,则可以使用https://letsencrypt.org/,它提供了一个方便的脚本 certbot ,该脚本可以您可以将现有设置转换为https。

如果您没有注册域,则可以自签名SSL证书(简单的Google会将您指向所需的资源),并使用该证书在Apache服务器上启用HTTPS。