[英]Securely send data from Raspberry Pi to Apache Server
Raspberry Pi - 收集温度数据并存储在文件中
服务器 - Apache,在 VM 上,托管网站(HTML、PHP + JavaScript)以及一些数据图表
我需要将数据文件从 Pi 安全地发送到服务器,服务器将使用该数据文件来填充网站上的图表。
什么是最好的最简单的方法来完成这个?
我对与此相关的所有内容都比较陌生,并且已经进行了大量阅读和测试,但似乎无法弄清楚如何正确执行此操作。
我有两组图形代码,一组使用 SQLite 数据库(理想),另一组使用 JSON 文件(有效但不是最理想的)。 两者都只使用当前存储在本地的文件。
在服务器 B 上运行 HTTPS Web 服务,这需要服务器 A 随数据一起发送用户名/密码。
如果可能,您可以在两台机器之间创建 VPN。
取决于数据敏感性,HTTPS 可能就足够了 + 某种具有额外授权的 API。
非常基本的实现
Apache 服务器端
保存.php:
<?php
$temperature = $_GET['temperature'];
$timestamp = $_GET['timestamp'];
// INSERT into database
// or
// save in the file
圆周率
我不知道你在 Pi 端使用什么语言,但你可以做的是执行 HTTP GET 请求,如: https://your.server.ip.or.domain/save.php?temperature=N×tamp=999999999
如果可能(Pi 有固定 IP),您可以根据它过滤请求。 它会让它更安全。
使 PI 将温度数据保存到一个简单的本地文件中。 (理想情况下在内存托管分区中,因为 SD 卡确实会磨损。)
在 PI 上配置 sftp 服务器。
然后在网络服务器上从 PHP 中提取文件
file_get_contents("ssh2.sftp://{$user}:{$pass}@{$pi_ip}:22{$pi_path}"))
并相应地处理它。
正如许多其他人所讨论的,HTTPS 服务器将是一个好的开始,如果您为服务器注册了域名,则可以使用https://letsencrypt.org/ ,它提供了一个方便的脚本certbot ,允许您将现有设置转换为https。
如果您没有注册域,您可以对 SSL 证书进行自签名(简单的 Google 将指向您所需的资源)并使用该证书在您的 Apache 服务器上启用 HTTPS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.