繁体   English   中英

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

[英]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&timestamp=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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM