坚果 (UPS) 和 SSL 证书

Mau*_*043 6 server ups openssl 14.04

今天我安装nut在我的 Ubuntu 服务器(Ubuntu 14.04 LTS)上。

$ uname -a
Linux boson 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

UPS 连接到另一台服务器(称为 neutron),所以我nut-client用来密切关注 UPS 的状态。

当我这样做时sudo upsc ups@neutron.local

Init SSL without certificate database
battery.charge: 15
battery.charge.low: 10
battery.charge.warning: 50
battery.date: not set
battery.mfr.date: 2012/11/27
:
Run Code Online (Sandbox Code Playgroud)

输出的第一行与我有关。我还没有nut在基于 Debian 的服务器上的其他安装中看到这一点。

我该怎么做才能摆脱那条线?

编辑:这个“没有证书数据库的初始化 SSL”特别烦人,因为它不是输出的一部分,upsc因此我无法grep输出。

编辑(2):澄清一下,(Synology)服务器(直接与 UPS 对话)未设置 SSL 或证书。网络上的其他(Debian/Raspbian)客户端没有上述问题。没有安装 SSL 证书(据我所知)

find / |grep cert_db 在服务器或客户端上都没有结果。

小智 6

您的问题是由于 nut 中的新 NSS 后端造成的,该后端是在 2.7.1 中添加的(从 2.6.5 到 2.7.1 的更改)。客户端首先尝试使用 STARTTLS 命令联系 tcp/3943 并从 upsd 获取 ERR FEATURE-NOT-CONFIGURED,因此它显示该警告。

此更改的基本原理是您通过网络以明文形式传输密码,并且开发人员添加了 SSL 证书支持以防止这种情况发生。毕竟,客户很吵。

该错误消息真正从客户端,而是因为它是从错误输出(错误)来你不能用grep的排除。

解决您的问题的最简单方法是正确使用管道:

upsc ups@neutron.local 2>&1 | grep -v '^Init SSL'
Run Code Online (Sandbox Code Playgroud)

或者,如果您只是将输出的某些部分用于例如 RRD 图,并且您的 cron 输出中出现垃圾,只需添加2>&1,它将是一条普通线:

upsc ups@neutron.local 2>&1 | grep 'battery.charge:' | awk ...
Run Code Online (Sandbox Code Playgroud)

解决此问题的不太简单的方法是实际配置 SSL 证书和其他内容,如9 中所述。有关保护 NUT 的注意事项 | 配置 SSL | NSS 后端使用