我最近安装了 monit(在 debian 上),一切运行正常。现在我想启用 ssl 支持。我按照文档中的方法做了:
set httpd port 2812
ssl enable
pemfile /etc/ssl/certs/ssl-cert-snakeoil.pem
现在我不仅无法通过网络访问服务器https://myserver.com:2812,但 monit 守护进程和 monit 命令之间的通信也失败了:
$# monit status
monit: Openssl read timeout error!
monit: error connecting to the monit daemon
答案1
看来您没有生成 SSL 证书。这里有一些提示(我已经在我的 Ubuntu 上完成了)。
确保Openssl
在您的系统上可用,如果没有apt-get install openssl
- 创建文件夹
/var/certs
- 导航到此文件夹
cd /var/certs
- 创建一个名为的文件
monit.cnf
并将以下内容复制/粘贴到其中,然后保存并关闭该文件:
#create RSA certs - Server RANDFILE = ./openssl.rnd [ req ] default_bits = 2048 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type [ req_dn ] countryName = Country Name (2 letter code) countryName_default = MO stateOrProvinceName = Ile de France stateOrProvinceName_default = Monitoria localityName = Paris localityName_default = Monittown organizationName = the_company organizationName_default = Monit Inc. organizationalUnitName = Organizational Unit Name organizationalUnitName_default = Dept. of Monitoring Technologies commonName = Common Name (FQDN of your server) commonName_default = server.monit.mo emailAddress = Email Address emailAddress_default = [email protected] [ cert_type ] nsCertType = server
- 然后运行(
enter
每次提示输入信息时按):
openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
- 设置权限:(
chmod 700 /var/certs/monit.pem
在我的例子中user:group
,pem 文件是root:root
)
monitrc
在您的配置文件中设置以下内容:
set httpd port 2812
ssl enable
pemfile /var/certs/monit.pem
allow user:pass
重新开始monit
然后它就成功了!现在你需要将真实信息放入文件中monit.cnf
并openssl
再次运行该命令。